it-swarm.com.de

Unterverzeichnis mit Apache zulassen

Ich bin der Meinung, dass dies eine ziemlich einfache Lösung ist, und habe ähnliche Probleme bei der Suche festgestellt, konnte sie jedoch mit diesen Lösungen nicht beheben. Grundsätzlich besteht das Problem darin, dass ich auf meinem Webserver nicht auf Unterverzeichnisse zugreifen kann. Wenn Sie zu localhost gehen, wird der Index in Ordnung gebracht. Wenn Sie jedoch zu localhost/test gehen, wird ein 403 Forbidden-Fehler angezeigt.

Ich verwende CentOS. Ich habe versucht, die Datei /etc/httpd/conf/httpd.conf auf verschiedene Arten zu bearbeiten, hatte aber kein Glück. Der DocumentRoot befindet sich unter/var/www/html. Derzeit habe ich:

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Ich habe versucht, Folgendes hinzuzufügen:

<Directory "/var/www/html/test">
    Order allow,deny
    Allow from all
</Directory>

Aber es gibt mir immer noch den verbotenen Fehler 403.

7
Danny

Sie sollten den Zugriff auf ein Verzeichnis unter einem Verzeichnis, das bereits in httpd.conf konfiguriert ist, nicht speziell zulassen müssen

Da/var/www/html mit "AllowOverride None" konfiguriert ist, liegt das Problem nicht an einer .htaccess-Datei, die die Zugriffsrechte ändert.

Der einzige verbleibende Grund ist, dass die Berechtigungen für die Dateien und Verzeichnisse es der Webserver-UID nicht erlauben, aus diesem Verzeichnis zu lesen. Was sie sind und was sie sein sollten, hängt von Ihrem Sicherheitsmodell ab. Aber als schnelle Lösung könnten Sie versuchen:

# chmod a+rx /var/www/html/test
# chmod a+r /var/www/html/*

Wenn dies das Problem löst, nehmen Sie sich bitte Zeit, um den Besitz und die Berechtigungen der Dateien auf einen angemesseneren Wert festzulegen.

8
symcbean

Normalerweise empfehle ich, zuerst einen Blick auf http error_log zu werfen, um das genaue Problem zu sehen.

Mit der Standardkonfiguration sollten Sie auf das Verzeichnis von studio-5.4 zugreifen können:

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Wenn Sie immer noch nicht auf das Verzeichnis zugreifen können, verweist alles auf Verzeichnisberechtigungen. In diesem Fall empfehle ich Folgendes:

chown -R Apache.apache /var/www/html  # Assuming Apache as default User
chmod -R 755 /var/www/html            # Making sure all users can read and execute

Führen Sie auf einem separaten Terminal die folgenden Befehle aus:

apachectl configtest && apachectl restart
tail -f /etc/httpd/logs/error_log     # Assuming default error_log location

Versuchen Sie, eine einfache HTML-Datei wie (example.html) hinzuzufügen:

<html>
<head><body>It works!</body></head>
</html>

Laden Sie abschließend die Seite neu, versuchen Sie, example.html zu laden, und sehen Sie sich die Ausgabe des Befehls tail an.

3
mdiianni

Ein weiterer Fall, in den Kommentaren wird erwähnt, dass das Verzeichnis mit Dateien darin kopiert wurde.

Möglicherweise befindet sich dort eine .htaccess-Datei mit einer Konfiguration, die den 403 verursacht.

Dateien mit Namen, die mit einem Punkt "." Beginnen. sind in Unix versteckt, um sie zu zeigen, verwenden Sie ls -a.

Dokumentation hier: https://httpd.Apache.org/docs/current/howto/htaccess.html

0
Samuel Åslund

Kommentieren Sie diese <Directory> - Anweisungen und setzen Sie einfach DocumentRoot /var/www/html Und chown -R Apache:apache /var/www/html Und starten Sie httpd neu.

Die Anweisung <Directory> Sollte verwendet werden, um eine Gruppe von Anweisungen auf ein bestimmtes Dateisystemverzeichnis anzuwenden (d. H. Berechtigungen zu ändern), sodass Sie sie normalerweise in einem <VirtualHost> Verwenden möchten.

0
fsoppelsa

SE Linux wurde in meinem Fall aktiviert.

setenforce 0

um es zu deaktivieren (nur zu Testzwecken)

0
Douglas Cooper