Welche Berechtigungen muss ich für mein Server-Setup erteilen?

Ich versuche, einen Server für meine Web-App lokal auf meinem MacBook Pro einzurichten. Ich habe Apache, PHP erfolgreich installiert und den Code meiner Web-App zum Standort ausgecheckt /var/www. Jetzt gibt es ein Skript in meiner App, das eine Datei in /var/www/someDir. Dazu verwende ich folgende Zeile:

$file = fopen($_SERVER['DOCUMENT_ROOT']."/abc.ini", "w");

Und bei der Ausführung sehe ich den folgenden Fehler im Fehlerprotokoll.

PHP Warning: fopen(/var/www/someDir/abc.ini): failed to open stream: Permission denied in /private/var/www/myscript.php on line 6

someDir gehört user abhilash.goje(das bin ich) und group wheel. Ich habe versucht, folgende Berechtigungen zu erteilen.

$sudo chmod -R 755 www -> Das Problem wurde nicht behoben
$sudo chmod -R 775 www -> Das Problem wurde nicht behoben
$sudo chmod -R 777 www -> Problem behoben, aber nicht sicher.

Berechtigung 777 funktioniert, aber ich bevorzuge diese Lösung nicht, da sie überhaupt nicht sicher ist. Bitte teilen Sie mir mit, wie ich die richtigen Berechtigungen für diesen Ordner festlege.

Vielen Dank im Voraus!!

Antworten (1)

Apache ist der Prozess, der über entsprechende Berechtigungen für den Zugriff verfügen muss /var/www. Apache ist normalerweise ein Benutzer _wwwder Gruppe _wwwunter MacOS. Bestätigen Sie dies mit:

 grep -e '^Group\|^User' /etc/apache2/httpd.conf

Es sollen zwei Zeilen gedruckt werden. Meine Ausgabe sieht so aus:

User _www
Group _www

Das bedeutet, dass auf meinem System Apache-Prozesse als Benutzer _wwwmit der Gruppe ausgeführt werden _www. Wenn Sie eine andere Konfiguration verwenden, überprüfen Sie die entsprechende Konfigurationsdatei auf dieselben Parameter und ersetzen Sie sie _wwwin der folgenden Lösung, falls sich Ihre unterscheidet.

  1. Ändern Sie die Gruppe von /var/wwwmit:chgrp -R _www /var/www
  2. Ändern Sie die Berechtigungen zum Hinzufügen von Gruppenschreiben mit:chmod -R 775 /var/www

Das sollte den Fehler beheben.

Als zusätzlichen Schritt können Sie den Besitz von ändern /var/wwwund _wwwsich dann selbst zu dieser Gruppe hinzufügen, um Ihre Lese- und Schreibrechte beizubehalten.