So setzen Sie ein Verzeichnis in Apache auf die Whitelist

So setzen Sie ein Verzeichnis in Apache auf die Whitelist

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.confund welche Syntax verwende ich?

Antwort1

Sie können und sollten nicht aus dem /rootVerzeichnis heraus bereitstellen. Es ist nur für den rootBenutzer 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

rootWenn 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/htmlDie 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_tzum Beispiel.

verwandte Informationen