
Dateien, die ich über den Browser bereitstellen möchte, befinden sich unter /root/my_folder
(Ubuntu 14.04). Ich habe einen Pfad von in geändert /var/www/html
, danach erhalte ich die Fehlermeldung „Verboten“, wenn ich versuche, im Browser darauf zuzugreifen /root/my_folder
./etc/apache2/sites-available/000-default.conf
Auf der standardmäßigen Begrüßungsseite von Apache heißt es:
Standardmäßig erlaubt Ubuntu keinen Zugriff über den Webbrowser auf Dateien außer denen in den Verzeichnissen /var/www, public_html (wenn aktiviert) und /usr/share (für Webanwendungen). Wenn Ihre Site ein Web-Dokumentstammverzeichnis verwendet, das sich woanders befindet (z. B. in /srv), müssen Sie Ihr Dokumentstammverzeichnis möglicherweise in /etc/apache2/apache2.conf auf die Whitelist setzen.
Wie kann ich mein Stammverzeichnis auf die Whitelist setzen /etc/apache2/apache2.conf
und welche Syntax verwende ich?
Antwort1
Sie können und sollten nicht aus dem /root
Verzeichnis heraus bereitstellen. Es ist nur für den root
Benutzer zugänglich, während Apache mit dem Benutzer ausgeführt wird www-data
. Werfen Sie einen Blick auf das Fehlerprotokoll und Sie werden sehen, dass Apache sich über Berechtigungen beschwert:
tail -f /var/log/apache2/error.log
root
Wenn Sie auf Ihrem System ohnehin mit dem Benutzer arbeiten , sollten Sie Dateien direkt darin hochladen /var/www/html
, da Sie dort bereits über die Berechtigungen verfügen.
Antwort2
/var/www/html
Die einfachste Problemumgehung besteht wahrscheinlich darin, das Verzeichnis folgendermaßen zu mounten :
mount -t none -o bind,ro /root/my_folder /var/www/html
Starten Sie dann Apache.
Hinweis: Bei der Fedora Linux-Distribution und wahrscheinlich auch bei anderen, die systemd verwenden, sehen einige Dienste die nach ihrem Start durchgeführten Mounts nicht, da einige Sicherheitsfunktionen standardmäßig aktiviert sind. Weitere Einzelheiten finden Sie untersystemd für Administratoren, Teil XII. Auch wenn Sie SELinux verwenden, müssen die Dateien eine entsprechende Bezeichnung haben, wie public_content_t
zum Beispiel.