Permission Denied per PHP
Permission Denied per PHP
Hallo Leute,
ich hab mir ein Verzeichnis für eine neue Webpage angelegt, geht auch alles. Nun will ich per PHP eine Datei schreiben. Das Script kann ich über die Webseite aufrufen, da kommt "permission denied". Das Script soll ins gleiche Verzeichnis schreiben, in dem es sich selbst befindet. Rechte des Verzeichnisses sind auf 755 und der Safe Mode ist deaktiviert.
Jetzt hab ich mir sagen lassen, dass das vielleicht dran liegen könnte, dass der Ordner die falsche Gruppenrechte hat. Also das Verzeichnis mit der Webpage (in der sich auch das Script befindet) gehört sowohl dem User, als auch der Gruppe "web1".
Muss ich da irgendwelche Besitzerrechte ändern, wenn ja wie? Was muss ich eingeben? Kenn mich da nicht aus. Ich weiß das hört man ungern, aber ich will jetzt nix falsches machen und nachher nochmehr kaputt machen...
ich hab mir ein Verzeichnis für eine neue Webpage angelegt, geht auch alles. Nun will ich per PHP eine Datei schreiben. Das Script kann ich über die Webseite aufrufen, da kommt "permission denied". Das Script soll ins gleiche Verzeichnis schreiben, in dem es sich selbst befindet. Rechte des Verzeichnisses sind auf 755 und der Safe Mode ist deaktiviert.
Jetzt hab ich mir sagen lassen, dass das vielleicht dran liegen könnte, dass der Ordner die falsche Gruppenrechte hat. Also das Verzeichnis mit der Webpage (in der sich auch das Script befindet) gehört sowohl dem User, als auch der Gruppe "web1".
Muss ich da irgendwelche Besitzerrechte ändern, wenn ja wie? Was muss ich eingeben? Kenn mich da nicht aus. Ich weiß das hört man ungern, aber ich will jetzt nix falsches machen und nachher nochmehr kaputt machen...
Re: Permission Denied per PHP
achso nicht falsch verstehen - nicht der Aufruf der Seite bringt mir "permission denied", sondern das Script bringt mir die Meldung "permission denied in line blabla" - also in der zeile wo ich den befehl gebe die datei anzulegen. PHP darf also die datei nicht schreiben...
Hab noch ne andere Webseite in nem anderen Ordner. Da ist der Besitzer web1 und die gruppe ist www-data und die rechte sind auf 755, hab das Script mal da rein kopiert, aber auch da bekommt das script keine Berechtigung zum schreiben von dateien:
Warning: fopen(test.txt) [function.fopen]: failed to open stream: Permission denied in /var/www/web1/html/meine-seite/test.php on line 3
Der Ordner "meine-seite" ist geändert, wegen anonymisierung und so ;-)
Hab noch ne andere Webseite in nem anderen Ordner. Da ist der Besitzer web1 und die gruppe ist www-data und die rechte sind auf 755, hab das Script mal da rein kopiert, aber auch da bekommt das script keine Berechtigung zum schreiben von dateien:
Warning: fopen(test.txt) [function.fopen]: failed to open stream: Permission denied in /var/www/web1/html/meine-seite/test.php on line 3
Der Ordner "meine-seite" ist geändert, wegen anonymisierung und so ;-)
Re: Permission Denied per PHP
web1:www-data == web1 darf schreiben, www-data darf rein, alle anderen auchweb1 und die gruppe ist www-data und die rechte sind auf 755
Wenn jetzt Du Dir selber Gedanken machen würdest, wie Dein PHP läuft, eventuell unter welcher Benutzerkennung Dein Apache läuft, kannst Du das so ändern, daß es passt.
Und nein, chmod 777 ist keine gute Alternative.
flo.
Re: Permission Denied per PHP
dem user/der gruppe von dem http server schreibrechte zu geben, kommt man halt schwer rum, wenn kein (f)cgi oder ähnliches verwendet wird. (vorallem wenn man nicht selber "root" vom server ist)
also wäre die genauere konfiguration schon nicht schlecht (also wie php läuft und so)
also wäre die genauere konfiguration schon nicht schlecht (also wie php läuft und so)
Re: Permission Denied per PHP
Die eigentliche Lösung ist ja auch Pille-Palle, aber welchen chown/chmod man nun ausführen muß, weiß nur er und die _relevanten_ Infos kamen nicht.
Re: Permission Denied per PHP
Wie ist das gemeint? Unter welche Benutzerkennung der Apache läuft? Läuft der nicht mit dem User WWW Data?flo wrote:web1:www-data == web1 darf schreiben, www-data darf rein, alle anderen auchweb1 und die gruppe ist www-data und die rechte sind auf 755
Wenn jetzt Du Dir selber Gedanken machen würdest, wie Dein PHP läuft, eventuell unter welcher Benutzerkennung Dein Apache läuft, kannst Du das so ändern, daß es passt.
Und nein, chmod 777 ist keine gute Alternative.
flo.
Also so wie ich das verstanden hab:
Wenn web1 der User und www-data die Gruppe ist, dann darf web 1 lesen, schreiben und ausführen und www-data sowie alle anderen dürfen ausführen und lesen.
Wenn ich jetzt einstellen würde, dass www-data der user wäre und web1 die Gruppe (sofern das überhaupt geht), dann dürfte www-data lesen, schreiben und ausführen - web1 darf aber nicht mehr schreiben, ergo kann er auch keine Daten (per FTP z.B.) mehr auf den server spielen, weil er die Schreibrechte nicht hat...
Also entweder hab ich hier was vollig falsch verstanden, aber so wie mir das scheint ist die Lösung ja auch blöd, wenn ich dann keine Daten mehr hochladen darf. Ich könnte ja auf 775 umstellen, dann sollte www-data (und somit auch PHP) schreiben dürfen - Aber das ist ja bestimmt auch nicht die sauberste Lösung.
Also ich blick hier überhaupt nicht durch :-(
Wie ist das überhaupt mit den Gruppen - www-data ist also eine Gruppe, richtig? In der Gruppe müssten sich ja diverse User befinden. Wenn aber www-data eine gruppe ist, kann www-data auch kein user sein, von daher wäre mein vorschlag auch nicht möglich (also www-data zum benutzer zu machen), mal davon abgesehen, dass web1 ja auch alle rechte braucht...
Re: Permission Denied per PHP
Achso nochwas eigenartiges. Die Verzeichnisse für die Domains legt bei mit confixx an. Faszinierender Weise läuft das verzeichnis der website a mit benutzer web1, als auch mit gruppe web1 und das verzeichnis von website b läuft mit user web1 und gruppe www-data.
Befindet sich da nun web1 in gruppe web1 oder in gruppe www-data? gibts überhaupt ne gruppe web1????
Befindet sich da nun web1 in gruppe web1 oder in gruppe www-data? gibts überhaupt ne gruppe web1????
Re: Permission Denied per PHP
So sollte es sein:
User: web1
Gruppe: web1
Dateien: 0660
Verzeichnisse: 0770
User www-date in Gruppe web1
User: web1
Gruppe: web1
Dateien: 0660
Verzeichnisse: 0770
User www-date in Gruppe web1
Re: Permission Denied per PHP
ahh ok danke! ist www-data nicht eine gruppe? zumindest ist www-data bei manchen verzeichnissen in /var/www/web1/html/ als gruppe angegeben!?Joe User wrote:So sollte es sein:
User: web1
Gruppe: web1
Dateien: 0660
Verzeichnisse: 0770
User www-date in Gruppe web1
Re: Permission Denied per PHP
Es gibt sowohl einen User als auch eine Gruppe www-data, ebenso verhält es sich mit root, webX und weiteren, siehe /etc/group und /etc/passwd...
