PHP fwrite - Permission denied

Bash, Shell, PHP, Python, Perl, CGI
sirmark
Posts: 41
Joined: 2003-07-17 11:21
Location: Karlsruhe

PHP fwrite - Permission denied

Post by sirmark »

Grrr, mache jetzt schon lange rum ....

Will eigentlich eine in PHP angelegte Grafikdatei in ein Verzeichnis "bilder/unterverzeichnis" schreiben.

Code: Select all

  $fp = fopen("..\bilder\test.jpg","w");
  fwrite($fp,$image1);
  fclose($fp);
 
Folgendes klappt auch mit einer HTML-Datei ohne Probleme (sollte ich mit Binärdaten noch (für mich jetzt noch nicht sehbare Probleme bekommen, wäre ich her schon mal für einen Tipp dankbar 8) ).

Jedoch bekomme ich das plötzlich gar nicht mehr hin, selbst eine ASC-Datei zu schreiben wird mit folgender Fehlermeldung quittiert:

Code: Select all

Warning: fopen(..bildertest.jpg) [function.fopen]: failed to create stream: Permission denied in /usr/local/httpd/htdocs/kunden/web1/html/cron/image.php on line 25

Warning: fwrite(): supplied argument is not a valid stream resource in /usr/local/httpd/htdocs/kunden/web1/html/cron/image.php on line 26

Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/httpd/htdocs/kunden/web1/html/cron/image.php on line 27
Gut dachte ich, Linux-Rechte. Das Verzeichnis Bilder habe ich testweise auf 777 (ja, ich weiss ... ist aber ja nur ein Test :roll: ) gesetzt. Keine Ã?nderung. User(!) dachte ich. Das Verzeichnis ist via FTP angelegt worden. Also den User auf wwwrun/www geändert. Nichts geändert.

Für mich stellen sich folgende Fragen:
1. Welches Recht und welcher User soll ein Verzeichnis haben, in dem Dateien, die ein Webbrowser lesen soll, aber nur mein PHP-Skript schreiben soll?
2. Habe ein Verzeichnis unterhalb von "html" angelegt, ihm 777 gegeben. Da schreibt mein PHP-Code fleisig hinein. Ist meine Ã?berlegung, dass 777 da ok ist, da das Verzeichnis UNTERHALB dem HTML-Zugriff liegt, ok? (Auf dem Server turnen nur wir rum).
3. Kann ich - wie oben gelistet - so überhaupt Binärdaten schreiben?

Gruß und weiterhin schönen Sonntag ... :evil: (Sorry, schon ein wenig erregt mal wieder ...)
sirmark

P.S.: Ach ja, natürlich auch im Netz geschaut, auch im Archiv. Gerade zum Thema FTP-User hat schon einer mal nachgefragt, aber keine wirkliche Hilfe erhalten. Vielleicht hat jemand von Euch ein Tipp ...
sirmark
Posts: 41
Joined: 2003-07-17 11:21
Location: Karlsruhe

Re: PHP fwrite - Permission denied

Post by sirmark »

OK, nach zwei Tagen bin ich mir sicher, dass es wirklich nur an den Berechtigungen lag. Und was habe ich getan? Dem Skript wie auch dem Verzeichnis 777 eingeräumt. Prima, oder?
Ich habe wirklich sehr viel bemüht, um einen Hinweis zu bekommen, was man genau tun muss. Muss ich dem Verzeichnis wwwroot zuweisen? Oder gibt es doch einen Eintrag in der php.ini (da weisse ich an, dass er in phptemp schreiben darf - kann ich da einfach nochmal eine Zeile mit einem weiteren Verzeichnis einfügen?).
Sorry, hat denn niemand ein ein Hinweis für die richtige Richtung?
stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: PHP fwrite - Permission denied

Post by stefanpropehan »

wie läst du php laufen - als dso - oder als cgi oder suPHP
sirmark
Posts: 41
Joined: 2003-07-17 11:21
Location: Karlsruhe

Re: PHP fwrite - Permission denied

Post by sirmark »

Php läuft als Modul und muss auch so bleiben.
Nachdem ich mich seit Sonntag mit diesem Problem beschäftige glaube ich fast, dass es ausser 777 keinen anderen Weg gibt. Zumal ein User ja erst auch mal lokalen Zugriff haben muss. Was mir nicht ganz klar ist, warum 666 (für das Verzeichnis) nicht klappt. Ich schreibe von aussen in das Verzeichnis; in dem Bilderverzeichnis wird definitiv nichts ausgeführt.

Den Apache in die gleiche Gruppe zu stecken wie das Verzeichnis - ich weiss nicht ... hat da jemand schon Erfahrung gemacht (auch im Hinblick auf Sicherheitsgedanken)?
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: PHP fwrite - Permission denied

Post by captaincrunch »

Den Apache in die gleiche Gruppe zu stecken wie das Verzeichnis - ich weiss nicht ... hat da jemand schon Erfahrung gemacht (auch im Hinblick auf Sicherheitsgedanken)?
Ist jedenfalls um Klassen sicherer als die 777-Lösung.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
darki
Posts: 36
Joined: 2003-11-25 12:57
Location: Karlsruhe

Re: PHP fwrite - Permission denied

Post by darki »

also lieber apache user in die gruppe stecken, in der auch die ganzen user (also webX) stecken, als 777 zuverteilen

Andere möglichkeit gibbet net?

Ich frag lieber nochma nach ;)
arty
Userprojekt
Userprojekt
Posts: 729
Joined: 2002-06-12 10:11

Re: PHP fwrite - Permission denied

Post by arty »