Festlegen von Berechtigungen für apache2 zu, dass Benutzer erstellen oder Bearbeiten Sie Dateien in /var/www/
Ich bin mit Ubuntu 14 server aus TUN, die mit LAMP-stack installiert, folgte ich der Anleitung hier zu installieren Kolben auf ubuntu, weil mein Hauptziel war die Flasche auf meiner website.
https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps
Während der Prüfung, wenn Benutzer eine Verbindung zu "http:/myvpsip/createfile/" das eine neue Datei erstellt, die auf den aktuellen Ordner /var/www/, ich habe Fehler vom Apache sagen, dass die Datei kann nicht erstellt werden "permission denied".
Ich versuchte es wieder mit der PHP-Skript erstellen Sie eine neue Datei auf dem gleichen Verzeichnis /var/www/aber hab das gleiche problem. Beide Studien wurden mithilfe von root-Konto. Ich habe versucht chmod der Ordner www auf 755 oder 777 und Sie nicht arbeiten.
Meine Frage ist, wie kann ich die Berechtigung für apache2, dass, wenn Benutzer durchsuchen Sie die website Sie in der Lage zu erstellen/Bearbeiten der Datei auf das aktuelle Verzeichnis?
Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, weil bei der Installation der Anwendung, Sie Tat so als root-Benutzer. Alle Ihre Anwendung Dateien und Verzeichnisse root gehören.
Wenn Sie ls -l auf /var/www und den Blick in das FlaskApp Ordner-Struktur, werden Sie wahrscheinlich finden Sie unter " Berechtigungen festlegen, wie diese:
Wenn Apache läuft, es läuft auf den Namen der wichtigsten Verfahren, die im Besitz von root-user und mehrere child-Prozesse des Benutzers " www-data. So im wesentlichen, Apache läuft als wenn angemeldet als Benutzer www-data.
Werden, wenn Ihre Anwendung muss eine Datei oder Ordner-Betrieb (läuft auf Namen der Apache www-data Benutzer), die public/world-permission-bits verwendet werden, da Apache Kind-Prozesse laufen nicht als root-Benutzer und nicht als root-Gruppe.
Suchen oben, sehen wir, dass nur die read-bit gesetzt ist für die öffentlichkeit/world Berechtigungen - keine schreiben. Und das ist, wo das problem liegt.
Einen Weg, um dieses Problem zu lösen ist, um alles unter /var/www/mywebsite im Besitz der Benutzer root und der Gruppe www-data. Dies setzt die Dinge so einrichten, dass nur der root-Benutzer alle Berechtigungen und www-data (alle anderen) können nur Lesen und ausführen (kein schreiben).
Wenn Sie setup Ihrer website, sollten Sie es einrichten, werden unter Ihrem eigenen separaten Ordner. Auf diese Weise können Sie mehrere virtuelle domains (D. H. websites) später zugegeben. Unter der Annahme 'mywebsite" ist, wo Ihre Domäne ist und Sie bereits installiert haben, Ihre Anwendungs-software (Kolben) in es:
Sie dann als system-administrator sind, müssen verstehen, die Anwendung und gehen Sie durch die Ordner und Dateien festlegen von Berechtigungen. Anwenden von Berechtigungen allgemein, dann auf einer Fall-zu-Fall-basis.
Für die meisten Verzeichnisse (750)
Für Verzeichnisse, die geändert werden können, indem die web-Anwendung (770)
Für die meisten Dateien (640)
Für spezielle Fall, wo die Dateien müssen geändert werden (660)
( * ), Weil alle Benutzer, die besuchen, Apache ausgeführt werden im Auftrag von www-data