2017-03-13 15 views
0

Zunächst möchte ich mich für mein schlechtes Englisch entschuldigen. Also, ich habe Apache 2.4.23 auf MacOS Sierra. Alles hat gut funktioniert, aber irgendwann hörte es auf gut zu funktionieren. Wenn ich versuche, eine Datei oder ein Verzeichnis auf meinem Webserver zu öffnen, sie werfen einen Fehler:Apache hat keinen Zugriff auf Web-Root-Verzeichnis

Forbidden 
You don't have permission to access/on this server. 
Server unable to read htaccess file, denying access to be safe 

Obwohl es Inhalt der Seite zeigen müssen. Es passiert mit all meinen Dateien und Verzeichnissen. Ich habe sie bereits zu der Gruppe _www hinzugefügt, in der Apache läuft, und make chmod -R 775, aber es hilft nicht. Hilft auch nicht chmod -R 777. Kann ich Apache mit einem anderen Benutzer oder einer anderen Gruppe betreiben? Ich denke, nein, weil in der Konfig _www als Benutzer und Gruppe auch eingestellt. Das ist, was "ps aux | grep httpd", sagt:

_www    9877 0,0 0,0 2480792 2040 ?? S  6:43  0:00.01 /usr/sbin/httpd -D FOREGROUND 
_www    9864 0,0 0,0 2480792 1612 ?? S  6:43  0:00.00 /usr/sbin/httpd -D FOREGROUND 
_www    9863 0,0 0,0 2480792 2020 ?? S  6:43  0:00.01 /usr/sbin/httpd -D FOREGROUND 
_www    9862 0,0 0,0 2480792 1628 ?? S  6:43  0:00.00 /usr/sbin/httpd -D FOREGROUND 
_www    222 0,0 0,0 2480792 1744 ?? S сб08 0:00.02 /usr/sbin/httpd -D FOREGROUND 
root    90 0,0 0,1 2481048 7808 ?? Ss сб08 0:01.40 /usr/sbin/httpd -D FOREGROUND 
alankabisov  10122 0,0 0,0 2423384 240 s000 R+ 6:58  0:00.00 grep httpd 

Wie wir sehen können es unter _www läuft. In diesem Moment habe ich zwei Fragen: 1) Warum gibt es verschiedene Instanzen von httpd? 2) Warum ist man unter root? Wie ich thnik, becuse ich es durchlaufen

"sudo apachectl start" Das ist mein Apache vhosts Config:

<Directory "/Users/alankabisov/Sites"> 
    Options Indexes MultiViews FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    Require all granted 
</Directory> 

<Virtualhost *:80> 
    VirtualDocumentRoot "/Users/alankabisov/Sites/%1/" 
    ServerName sites.dev 
    ServerAlias *.dev 
    UseCanonicalName Off 
</Virtualhost> 

So kann ich * meine Seiten durch Domains .dev zugreifen. Zum Beispiel zeigt abc.dev auf abc-Ordner von Web-Root.

Auch habe ich einige seltsame Fehler in meinem Apache-Fehlerprotokoll:

[Mon Mar 13 18:45:27.113487 2017] [core:crit] [pid 9877] (13)Permission denied: [client 127.0.0.1:58513] AH00529: /Users/alankabisov/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/Users/alankabisov/' is executable, referer: http://php1.dev/ 

[Mon Mar 13 18:45:27.297229 2017] [core:crit] [pid 9877] (13)Permission denied: [client 127.0.0.1:58513] AH00529: /Users/alankabisov/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/Users/alankabisov/' is executable 

[Mon Mar 13 18:45:27.359012 2017] [core:crit] [pid 9877] (13)Permission denied: [client 127.0.0.1:58513] AH00529: /Users/alankabisov/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/Users/alankabisov/' is executable, referer: http://php1.dev/ 

ich seltsam finde, dass Apache für Probleme des Lesens .htaccess Datei beklagt, dass die Benutzer/alankabisov/Verzeichnis in den/lokalisiert, aber nicht in der/Benutzer/alankabisov/Sites wie auf meinem vhosts conf gesetzt.

Ich hoffe, Sie werden mir helfen. Vielen Dank.

Antwort

0

So scheint es, dass ich das Problem gelöst habe. Apache suchte in den übergeordneten Verzeichnissen des Web-Root nach der htaccess-Datei und konnte nicht in dieses Verzeichnis einlesen. Also habe ich dieses Verzeichnis zur Gruppe _www hinzugefügt und dafür Leseberechtigungen gegeben. Es hat mir geholfen. Vielleicht ist die Lösung nicht die beste, aber es hilft.

Verwandte Themen