Frage Apache "Client verweigert von Server-Konfiguration", trotz Zugriff auf Verzeichnis (Vhost-Konfiguration)


in Apache auf Ubuntu habe ich einen vhost eingerichtet, aber im Browser bekomme ich immer einen "403 Access verboten" -Fehler; das Protokoll sagt "Der Client wurde von der Serverkonfiguration abgelehnt: / home / remix /".

Auf der Suche nach der Lösung online habe ich viele Posts über den Verzeichniszugriff gefunden (Erlaube von allen, usw.), aber soweit ich weiß, habe ich das schon gemacht. Im httpd-vhosts.conf Es gibt folgenden Code:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    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 index.html-Datei und vhosts sind in httpd.conf aktiviert.

Gibt es etwas, was ich nicht sehe?

Bearbeiten: 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/

35
2017-08-16 08:24


Ursprung


Was ist im Fehlerprotokoll von Apache? - Shane Madden♦
Ah, ich habe gedacht Ich habe etwas vergessen ... Ich habe es dem ursprünglichen Post hinzugefügt. - RemiX
Welche Version von Apache verwenden Sie? - Shane Madden♦
Apache / 2.4.2 (Unix) - RemiX


Antworten:


Ändern Sie Ihre Berechtigungskonfiguration:

<Directory /home/remix/>
    #...
    Order allow,deny
    Allow from all
</Directory>

... zu der Apache 2.4-Version desselben.

<Directory /home/remix/>
    #...
    Require all granted
</Directory>

Überprüfen Sie die Upgrade des Übersichtsdokuments Informationen zu anderen Änderungen, die Sie möglicherweise vornehmen müssen - und beachten Sie, dass sich die meisten der Konfigurationsbeispiele und die Hilfe, die Sie dort auf Google (und auf dieser Website) finden, auf 2.2 beziehen.


59
2017-08-20 15:36



Wenn ich Zeit hätte, würde ich einen Fehler darüber protokollieren, weil httpd -t sagt, es gibt kein Problem mit der älteren Syntax, und auch nicht httpd -S. Der Sinn eines Konfigurationsprüfers liegt meines Erachtens darin, auf Probleme hinzuweisen! ... Wenn Sie ein Verzeichnis haben, auf das Sie verweisen, wird es nicht funktionieren - einfach so. ... Daumen hoch auf die Antwort. - Richard T


Überprüfen Sie die Berechtigungen für das Verzeichnis. Ich würde wetten, dass es den Zugang für niemanden außer Ihnen selbst sperren soll, zum Beispiel:

$ ls -ld /home/remix
drwx------ 92 remix remix 4096 Aug 17 22:59 /home/remix

Wenn du siehst drwx------ genau, dann ist das der Fall. Beheben Sie es, indem Sie Folgendes ausführen:

chmod a+x /home/remix

4
2017-08-18 07:19



Ich sehe: drwxrwxr-x 2 remix remix 4096 Aug 16 09:36 / home / remix. Ich habe den Befehl trotzdem versucht, ohne Wirkung. - RemiX
Ahh, ich kann sie nicht alle gewinnen. - Michael Hampton♦


Stellen Sie sicher, dass der Benutzer ausgeführt wird httpd Dienst hat Zugriff auf diese Verzeichnisse.


3
2017-08-16 12:58



Ich bin nicht sicher, wer der Benutzer für httpd ist oder wie zu überprüfen, aber jeder kann lesen (Benutzer / Gruppe / andere). - RemiX
Überprüfen Sie die httpd.conf für Userparam. - cpt.Buggy
Ok, es heißt 'User nobody' und 'Group nogroup'. Ich habe versucht, es zu "User Remix" (das ist der Besitzer des Ordners) zu ändern, aber selbst das wird nicht helfen. - RemiX


"Client verweigert durch Serverkonfiguration" bedeutet, dass der Linux-Server selbst den Zugriff auf die Datei verbietet, nicht Apache.

Wenn das Bereitstellen von Zugriff durch Ändern von Berechtigungen / Besitz / Gruppenzugehörigkeit das Problem nicht löst, kann die Ursache der Route SELinux sein, das den Zugriff auf jeden Ordner verbietet, der nicht den entsprechenden SE Linux-Kontext hat, wie in erklärt "Relocation eines Apache DocumentRoot unter Selinux".

  • Wenn Sie SELinux vorübergehend deaktivieren, indem Sie dies tun setenforce 0 macht die Datei zugänglich
  • Während SELinux wieder aktiviert wird setenforce 0 macht wieder die Datei nicht zugänglich

Dann ist der Zugriff von SELinux sicher verboten, unabhängig von den Dateiberechtigungen.


1
2018-02-10 17:49