Ich habe die Konfiguration von Apache so geändert, dass sie auf einen Ordner in meinem Ausgangsverzeichnis verweist:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/dbugger/html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/dbugger/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Ich habe sogar meine /home/dbugger/html
Erlaubnis erteilt 777. Aber ich erhalte immer noch die gleiche Fehlermeldung unter http://localhost
: "403 Forbidden"
Was fehlt mir?
/home/dbugger
Erlaubnis?Antworten:
Das hat bei mir funktioniert
Das Wichtigste war, sich zu ändern
zu
quelle
Allow from all
von Apache 2.4 ab - serverfault.com/questions/549517/...AllowOverride
vonAll
in Ihrem Stammverzeichnis ist bestenfalls rücksichtslos! Weitere Informationen finden Sie unter httpd.apache.org/docs/2.4/mod/core.html#allowoverride .userdir
Modul aktivieren :Aktivieren Sie die PHP-Ausführung im Benutzerverzeichnis:
(Oder wenn Sie zum Beispiel PHP 7.0 verwenden)
Kommentieren Sie diesen Teil (
#
am Anfang jeder Zeile):Drücken Sie Ctrl+ Xzum Speichern
Verzeichnisliste aktivieren:
Füge das hinzu:
Drücken Sie Ctrl+ Xzum Speichern
Starten Sie Apache neu (auch
sudo
hier erforderlich):Legen Sie nun Ihre PHP-Dateien in das
/home/yourname/public_html
Verzeichnis und gehen Siehttp://localhost/~yourname
von Ihrem Webbrowser aus zu.quelle
Apache läuft als Benutzer
www-data
. Wenn es bei Ihnen zu Hause keine Ausführungsberechtigung hat, kann Apache keine Dateien lesen.Ändern Sie die Gruppe Ihres Zuhauses in
www-data
:Und gib ihm nur die Erlaubnis, dein Homeverzeichnis zu durchlaufen:
Sie können auch Berechtigungen einschränken für
/home/dbugger/html
:quelle
/home/dbugger
benutzen/home/dbugger/html
?/home/dbugger/html
777 anstatt auf 777 anwenden. Beachten Sie jedoch, dass der Benutzer www-data nichtcd
auf Dateien oder Unterordner zugreifen kann, wenn er nicht zu Ihnen nach Hause kann. Wenn Sie also die Erlaubnis haben, zu Hause zu sein, kannrwx------ dbugger:dbugger
Apache nicht auf Dateien in Ihrem Haus zugreifen. Wenn Sie den Zugriff nicht ein wenig einschränken möchten, können Sie versuchen, nur die Ausführungsberechtigung (chmod g+x /home/dbugger
) zu erteilen. Ich bin mir nicht sicher, aber ich denke, dass dies funktioniert.chgrp www-data /home/dbugger
in kombination mit @DavidGreene funktionierte es für michsudo usermod -a -G dbugger www-data
müssen Sie Apache neu starten.Sie müssen die Berechtigungen nicht ändern, wenn Sie Ihr Basisverzeichnis zum Hosten der Entwicklungsumgebung verwenden möchten, zumindest, wenn Sie für einige Anwendungen Schreibberechtigungen benötigen. Sie benötigen ein mod_userdir-Modul für Apache und können auf / home / benutzername / public_html / * wie folgt zugreifen: http: //domain.local/~benutzername/dir_name/ *, um einen virtuellen Host zu verwenden Link wie folgt:
quelle
a2enmod userdir