PHP-Serverberechtigungen für Dateien und Verzeichnisse erteilt, aber immer noch nicht erlaubt

PHP-Serverberechtigungen für Dateien und Verzeichnisse erteilt, aber immer noch nicht erlaubt

Ich habe PHP-Code auf Codeanywhere, wo ich einfach versuche, eine Datei auf dem Server zu erstellen, aber dennoch die folgende Fehlermeldung erhalte:

„Warnung: fopen(file.txt): Stream konnte nicht geöffnet werden: Berechtigung verweigert in /home/cabox/workspace/index.php in Zeile 312“

Ich verwende fopen ($file, 'w'). Mit 'r' als Parameter funktioniert es.

Ich habe CodeAnywhere gefragt, ob es von ihrer Seite Einschränkungen gibt, die Benutzer daran hindern, mit Code direkt auf dem Server Dateien zu erstellen. Die Antwort war, dass es keine Einschränkungen gibt und ich nur nachschauen muss, wie Berechtigungen erteilt werden.

Zuerst wurde chmod für Dateien und Verzeichnisse verwendet

chmod 755 index.php (danach 777 für experimentelle Zwecke)

Dennoch werde ich immer noch mit der oben gezeigten Fehlermeldung konfrontiert. Ich habe mir also die Berechtigungen auf jeder Ebene des Servers angesehen und sie unten angezeigt, aber ich sehe nichts Seltsames (nach meinem bescheidenen Wissen)

/

[cabox@box-codeanywhere /]$ ls -ld
drwxr-xr-x 21 root root 4096 19. April 03:09

/heim/

[cabox@box-codeanywhere home]$ ls -ld
drwxr-xr-x 3 root root 4096 16. Juni 2014

/Startseite/cabox/

[cabox@box-codeanywhere ~]$ ls -ld
drwxrwxrwx 7 cabox cabox 4096 14. April 11:48

/home/cabox/Arbeitsbereich/

[cabox@box-codeanywhere Arbeitsbereich]$ ls -ld
drwxrwxrwx 4 cabox cabox 4096 19. April 04:27

Ich kann die Berechtigungen nicht ändern für/als BenutzernameWurzel Ich nehme an, das liegt daran, dass mein Benutzername istkabox

[cabox@box-codeanywhere-Arbeitsbereich]$ id
uid=500(cabox) gid=500(cabox) groups=500(cabox)

index.php versucht, file.txt zu erstellen, befindet sich in/home/cabox/Arbeitsbereich/

-rwxrwxrwx 1 cabox cabox 18608 19. April 05:12 index.php

Was mache ich falsch?

Dank im Voraus!

Antwort1

Nach vielen Experimenten stellte ich fest, dass ich meine Entwicklungsumgebung für virtuelle Maschinen als HTML5 und nicht als PHP eingerichtet hatte. PHP-Dateien funktionierten einwandfrei, da der Server Apache war, aber aus einem mir immer noch schleierhaften Grund ist die Berechtigungsverwaltung anders.

Nachdem ich die Umgebung auf PHP umgestellt hatte, funktionierten Befehle, die vorher nicht funktionierten, und ich konnte das Problem endlich herausfinden.

Hier ist die "Lösung", die mit Vorsicht zu genießen ist, da meine Kenntnisse in dieser Angelegenheit eher begrenzt sind

Dem eigenen Benutzer (cabox) das Recht 775 zu geben, bewirkt nichts, da nur der Benutzer „www-data“ das Recht hat, Dateien auf dem Server zu erstellen, zu ändern und zu löschen, wenn die Website ausgeführt wird.

sudo chown -R www-data:www-data /home/cabox/workspace chmod 775 /home/cabox/workspace

das hat geholfen.

Wenn ich jetzt bei CodeAnywhere den Benutzernamen in „www-data“ ändere, kann ich nicht mehr auf dem Server arbeiten und Dateien erstellen, ändern oder löschen. Ich dachte, die Lösung wäre, die Rechte als Benutzer (cabox) und Gruppe (www-data) festzulegen und ihnen die gleichen Rechte zu geben, aber bisher hat das nicht funktioniert, also muss ich das noch herausfinden.

Ich hoffe, das hilft Leuten, die in Zukunft auf dasselbe Problem stoßen werden. Ich habe eine Woche dafür gebraucht, eine ziemlich frustrierende :)

Antwort2

Möglicherweise möchten Sie den Besitzer der Datei oder des Verzeichnisses ändern

chown Benutzername -R Ihr Ordner

. Ich hatte das gleiche Problem und das hat mein Problem behoben.

Antwort3

Vielleicht könnte das funktionieren, ich hatte das gleiche Problem und nach 3 Stunden Googlen habe ich Folgendes ausprobiert:

Ordnerberechtigung

Als letztes müssen Sie zum Abschluss der Installation die Ordnerberechtigungen festlegen. Öffnen Sie dazu Ihre Befehlszeile und geben Sie Folgendes ein:

sudo find . -type f -exec chmod 664 {} + 
sudo find . -type d -exec chmod 775 {} + 
sudo chown -R vm_username:www-data ~/workspace

zumindest für mich löst es das Berechtigungsproblem, das ich hatte.

verwandte Informationen