Ich denke, für eine Entwicklungsmaschine ist es bequemer, Apache als aktueller Benutzer auszuführen, um das Berechtigungsproblem zu vereinfachen? Wie mache ich das? Ich denke, es ist suexec, aber wie konfiguriere ich es in Ubuntu + Apache?
permissions
apache2
Jiew Meng
quelle
quelle
Bearbeiten Sie die folgende Datei als root: / etc / apache2 / envvars
mit dem Befehl:
Ändern Sie den Benutzer und die Gruppe in sich selbst, wenn es nur einen Benutzer gibt und Sie nie wieder Probleme mit Berechtigungen haben.
IE, wenn Sie sich nur als Benutzer 'big_dog' anmelden und den Server ausführen:
Ich bin mir sicher, dass Sie diesen Benutzer in den aktuellen Benutzer ändern können. Installieren Sie dann user_dir. Sie haben alle Web-Sites, über die Sie die volle Kontrolle haben (sofern Sie dies nicht ändern).
Starten Sie den Server neu (falls Sie sich nicht sicher sind, starten Sie ihn einfach neu oder starten Sie ihn neu) und Sie können loslegen.
quelle
sudo chown big_dog.big_dog /var/lock/apache2
sudo chown big_dog.big_dog -R /var/log/apache2
/etc/apache2/uid.conf
export APACHE_RUN_USER=#$(id -u)
gab die Benutzer-ID an und verwendete sie in ähnlicher Weiseid -g
für die Gruppe im Skript. Am Ende rief ich Apache zum Ausführen auf.warum würdest du das tun? Ich hatte in der Vergangenheit Probleme mit dieser Dauerwelle, aber dies ist mein Entwicklungsprozess von heute:
sudo apt-get install lamp-server^
Proc aus, um die Lampe hochzufahrenmach sym link zu meinem home dir wo projekte so sind:
ln -s /home/user/html /var/www/html
mache sym link zur hosts config datei
ln -s /home/user/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-default
das ist es :)
Es funktioniert wie vorgesehen, keine Probleme mit Benutzerrechten oder Ähnlichem mit dem Apache-Server, für MySQL habe ich etwas mehr Zeit.
hth, Prost
quelle
Wenn Sie das Problem umgehen, können Sie feststellen, wo der Benutzer für Apache festgelegt ist, indem Sie Folgendes ausführen:
Dann müssen diese Instanzen in
/etc/apache2/apache2.conf
Apache (sudo /etc/init.d/apache2 reload
) bearbeitet und neu geladen werden .quelle
apache2.conf
enthältwww-
für mich nichtgrep -HR "www-" /etc/apache2/
. Wenn Sie bereits wissen, dass es sich um eine apache2.conf-Datei handelt, bearbeiten Sie diese Datei einfach. In meinem Fall war es nicht da, aber in / etc / apache2 / envvars, wie Erics Antwort zeigt.apache.conf
sucht${APACHE_RUN_USER}
und${APACHE_RUN_GROUP}
. Nichtwww-data
direkt.Erstellen Sie eine neue Benutzergruppe
webdev
und fügen Sie denwww-data
Benutzer hinzu.Fügen Sie dann Ihren Benutzer zu dieser Gruppe hinzu und machen Sie sie zur Standardgruppe für Ihren Benutzer.
Als letztes müssen Sie sicherstellen, dass die Gruppe webdev über die Rechte rwx für die Dateien verfügt
Jetzt kann nur noch passieren, dass zB für www-data eine neue Protokolldatei erstellt wird und Sie diese nicht rwxen können.
quelle
www-data
Gruppe hinzuzufügen , zumal es sich um eine Entwicklungsumgebung handelt?