Apache ist ein Programm, das im Hintergrund läuft. Apache wird ursprünglich vom Benutzer gestartet root
(auch genannt root-process
). Dadurch werden root-process
mehrere untergeordnete Prozesse gestartet, die die Clientanforderungen verarbeiten. Aus Sicherheitsgründen werden die untergeordneten Prozesse nicht vom Benutzer ausgeführt, root
sondern als Benutzer mit minimalen Berechtigungen. Normalerweise heißt dieser Benutzer apache
oder www-data
.
Um herauszufinden, welcher Benutzer dies für Apache v1 ist:
ps -ef | grep httpd | grep -v grep
oder für Apache v2:
ps -ef | grep apache | grep -v grep
Das Ergebnis für Apache 2 wird ungefähr so aussehen:
wurzel 5001 1 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5021 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5022 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5023 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
In diesem Fall ist der Benutzer / die Gruppe www-data
Um ein Verzeichnis für den Webserver beschreibbar zu machen, müssen wir den Eigentümer oder die Gruppe des Verzeichnisses auf den Eigentümer oder die Gruppe von Apache setzen und die Schreibberechtigung dafür aktivieren. Normalerweise setzen wir das Verzeichnis so, dass es zur Apache-Gruppe gehört ( apache
oder `www-data oder welcher Benutzer auch immer zum Starten der untergeordneten Prozesse verwendet wird) und aktivieren die Schreibberechtigung für die Gruppe.
chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir
( www-data
ist der Name, den Sie mit dem ps
obigen Befehl gefunden haben).
Bezüglich:
2) Ich wurde auch angewiesen, das App / Runtime-Verzeichnis web-beschreibbar zu machen. Ist das dasselbe wie mit Apache beschreibbar?
Ja, dies ist ein Verzeichnis, das Sie für die von Apache erwartete Gruppe als beschreibbar festlegen müssen. Wahrscheinlich wird dies irgendwo in sein /var/www/
oder es wird als virtueller Host in /etc/apache2/sites-enabled/
und / oder gesetzt/etc/apache2/sites-available
mkdir dirname && chgrp www-data dirname
R
Erledigt alle Verzeichnisse, von denen aus Sie den Befehl ausführen. Es gibt viele Möglichkeiten, dies zu tun;)ps -ef | grep [a]pache
ist eine gebräuchliche Redewendung, um die Störliniegrep
in der Ausgabe zu vermeiden .