Ich verwende den einfachen Ubuntu Desktop 11.04 und habe meinen Lampenstapel mit dem Lampenserver installiert. Ich versuche, Netbeans als meine IDE zu verwenden.
Derzeit werden alle virtuellen Hosts von /var/www/vhostname
ausgeführt – aber da ich keine Gruppen oder Berechtigungen konfiguriert habe, habe ich keine Schreibberechtigung, wenn ich versuche, eine der Dateien über Netbeans zu öffnen.
Wie kann ich Berechtigungen richtig einrichten (oder Apache oder Netbeans konfigurieren), damit:
- Dateien, die von einem PHP-Skript erstellt wurden, können
rw
sein von Netbeans - Dateien, die von Netbeans erstellt wurden, können
rw
sein von Apache
Ich habe versucht zu chown
alles an meinen Benutzer/meine Gruppe, der/die Netbeans Schreibrechte gegeben hat, aber dann hatte Apache keine Schreibrechte.
Hinweis:Dies ist nur für eine Entwicklungsmaschine gedacht – wird nicht in der Produktion verwendet, und ich bin der einzige Benutzer dieser Box.
AKTUALISIEREN
Früher habe ich die Methode in der Antwort verwendet, die ich als akzeptiert markiert habe, aber heutzutage mache ich etwas viel Einfacheres:
- Ich habe Apache so eingestellt, dass er als mein Benutzer und meine Gruppe ausgeführt wird (dies geschieht entweder in httpd.conf, apache2.conf oder envvars, abhängig von Ihrer Distribution)
- Ich chown /var/www zu meinem Benutzer und meiner Gruppe
Voila, Apache hat Lese-/Schreibzugriff, und ich habe Lese-/Schreibzugriff, während ich an Projekten arbeite.
Akzeptierte Antwort:
Was ich empfehle, wurde größtenteils in dieser Ask Ubuntu-Frage beschrieben.
Für diesen speziellen Fall würde ich suPHP installieren, was es Ihnen kurz gesagt ermöglicht, PHP-Skripte als Ihr Benutzer unter Apache auszuführen.
Indem Sie Folgendes tun:
sudo chown -R youruser:youruser /var/www
find /var/www/ -type d -exec chmod 0755 {} \;
find /var/www/ -type f -exec chmod 0644 {} \;
Installieren Sie suphp-common
und libapache2-mod-suphp
aus diesem PPA (Was sind PPAs und wie verwende ich sie?)
Deaktivieren Sie mod_php5
und aktivieren Sie mod_suphp
sudo a2enmod suphp
sudo a2dismod php5
Aktualisieren Sie Ihre virtuellen Hosts so, dass sie unten diese Zeile enthalten:
suPHP_UserGroup youruser youruser
Ersetzen von youruser
mit dem Benutzer, mit dem Sie Dateien auf dem Server bearbeiten. Starten Sie Apache neu.
Von diesem Punkt an führt Apache alle PHP-Skripte aus, die Ihr Benutzer sind, was bedeutet, dass sie Ihrem Benutzer/Ihrer Gruppe gehören können und es keine Notwendigkeit gibt, verrückte Berechtigungen wie 777 zu verwenden. Da alles als Ihr Benutzer ausgeführt wird, werden alle Dateien, die von der php Skripte werden auch Ihrem Benutzer gehören! Es gibt viele andere coole Dinge, die Sie mit suPHP machen können; Wie es sich anhört, ist dies jedoch alles, was Sie brauchen, um loszulegen.
Siehe auch:Ubuntu – Probleme beim Herunterladen der Paketliste aufgrund eines „Hash-Summen-Nichtübereinstimmungs“-Fehlers?