In Apache unter Ubuntu habe ich einen vhost eingerichtet, aber im Browser wird weiterhin die Fehlermeldung "403 Access forbidden" angezeigt. Das Protokoll besagt " Client verweigert durch Serverkonfiguration: / home / remix / ".
Auf der Suche nach der Online-Lösung habe ich viele Posts über den Verzeichniszugriff gefunden (Von allen zulassen usw.), aber soweit ich weiß, habe ich das bereits getan. In httpd-vhosts.conf gibt es den folgenden Code:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/opt/lampp/htdocs/"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/home/remix/"
ServerName testproject
ServerAlias testproject
<Directory "/home/remix/">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Ich habe auch hinzugefügt
127.0.0.1 testproject
in die Datei / etc / hosts.
Außerdem enthält der Ordner / home / remix / eine Datei index.html, und in httpd.conf sind vhosts aktiviert.
Gibt es etwas, das ich nicht sehe?
Edit: Dies ist der Apache error_log Eintrag:
[Sat Aug 18 09:15:32.666938 2012] [authz_core:error] [pid 6587]
[client 127.0.0.1:38873] AH01630: client denied by server configuration: /home/remix/
linux
apache-2.2
ubuntu
virtualhost
RemiX
quelle
quelle
Antworten:
Ändern Sie Ihre Berechtigungskonfiguration:
... auf die Apache 2.4-Version desselben.
Überprüfen Sie das Upgrade-Übersichtsdokument auf Informationen zu anderen Änderungen, die Sie möglicherweise vornehmen müssen - und beachten Sie, dass sich die meisten Konfigurationsbeispiele und Hilfestellungen, die Sie dort bei Google (sowie auf dieser Website) finden, auf 2.2 beziehen.
quelle
Überprüfen Sie die Berechtigungen für das Verzeichnis. Ich wette, es ist so eingestellt, dass niemandem außer Ihnen der Zugriff verweigert wird, zum Beispiel:
Wenn Sie
drwx------
genau sehen, ist dies der Fall. Fix it by running:quelle
Stellen Sie sicher, dass der Benutzer, der den
httpd
Dienst ausführt, Zugriff auf diese Verzeichnisse hat.quelle
User
param."Von der Serverkonfiguration abgelehnter Client" bedeutet, dass der Linux-Server selbst den Zugriff auf die Datei und nicht auf Apache untersagt.
Wenn das Bereitstellen des Zugriffs durch Ändern von Berechtigungen / Eigentümern / Gruppenmitgliedschaften das Problem nicht behebt, besteht die Ursache möglicherweise darin, dass SELinux den Zugriff auf Ordner untersagt, die nicht über den entsprechenden SE Linux-Kontext verfügen (siehe 'Verschieben eines Apache DocumentRoot unter Selinux') .
setenforce 0
kann auf die Datei zugegriffen werdensetenforce 0
dass auf die Datei nicht mehr zugegriffen werden kannDann ist der Zugriff von SELinux sicher verboten, unabhängig von den Dateiberechtigungen.
quelle
Eine andere einfache (aber trickreiche) Möglichkeit, die dieses Problem für Benutzer verursachen kann, ist, wenn sich die Benutzerverzeichnisse nicht in / home / * befinden, sondern woanders, z. B. in / nethome / *.
Die mitgelieferte userdir.conf enthält so etwas: (aber mit Userdir: disabled)
Die Directory-Spezifikation geht von ~ user == / home / user aus. Ändern Sie einfach die Verzeichnisspezifikation oder fügen Sie sie hinzu, um zu bestimmen, wo sich die Benutzer-Ausgangsverzeichnisse tatsächlich befinden.
Ziemlich offensichtlich, aber es hat eine Weile gedauert, bis ich es herausgefunden habe !! :-P DUH!
zB ~ user == / nethome / user
Siehe auch allgemein offenere Autorisierung in diesem Verzeichnis.
quelle