2013-07-14 4 views
37

ich ubuntu 13.04 64bit auf meinem Desktop ausgeführt wird, installierte ich Apache2, MySQL und PHP usw.Apache2 virtualhost 403 verboten?

ich in /home/afflicto/public_html statt /var/www meine Web-Root haben wollte. Also ging ich mit dieser Anleitung: http://www.maketecheasier.com/install-and-configure-apache-in-ubuntu/2011/03/09
(Ich habe alles von "Konfigurieren von verschiedenen Websites"), wie ich die Lösung mehr.

Hier ist, was ich getan habe:
installiert Apache2, MySQL etc ..
/etc/apache2/sites-avaliable/default zu /etc/apache2/sites-available/afflicto kopiert. Dann bearbeitet er, es sieht nun wie folgt aus:

/etc/apache2/sites-available/afflicto

<VirtualHost *:80> 
ServerAdmin [email protected] 

DocumentRoot /home/afflicto/public_html 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
</Directory> 
<Directory /home/afflicto/public_html/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</Directory> 

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
<Directory "/usr/lib/cgi-bin"> 
    AllowOverride None 
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
    Order allow,deny 
    Allow from all 
</Directory> 

ErrorLog ${APACHE_LOG_DIR}/error.log 

# Possible values include: debug, info, notice, warn, error, crit, 
# alert, emerg. 
LogLevel warn 

CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

Ich habe sudo a2dissite default && sudo a2ensite afflicto && sudo service apache2 restart

ich eine index.php erstellt und index.html in /home/afflicto/public_html/test/
beim Zugriff auf localhost/test oder localhost/test/index.html etc, bekomme ich 403 verboten Fehler.

Was mache ich falsch? Danke im Voraus.

Update 1
ich den Besitzer des public_html Verzeichnis www-data gesetzt haben.
Auch sudo chmod -R +x public_html && sudo chmod -R 777 public_html
Noch immer 403 Fehler.

Hier ist der Ausgang des Apache-Fehlerprotokoll:

[Sun Jul 14 06:10:32 2013] [error] [client 127.0.0.1] (13)Permission denied: access to/denied 

[Sun Jul 14 06:10:32 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied 

Antwort

19

Stellt sich heraus, ich nicht nur /home/afflicto/public_html sondern auch /home/afflicto/ Verzeichnis als auch chmod hatte.

Seltsam.

+7

Richtig. Der Apache-Prozess muss Zugriff auf jedes Verzeichnis im Pfad haben. Außerdem erfordert der Apache-Prozess, dass jedes Verzeichnis Weltzugriff hat oder das Verzeichnis nicht an die (Außen-) Welt liefert. – dsh

+0

Ich war fest, bis ich dies anwendete. Vielen Dank! –

+2

Nicht sonderlich komisch. Ihr angegebenes 'DocumentRoot' ist'/home/afflicto/public_html', auf das Apache zugreifen muss. – JakeGould

92

Ich war mit diesem Problem konfrontiert. Aber ich mochte die Idee nicht, die Gruppe meines Home-Verzeichnisses zu www-data zu ändern. Dieses Problem kann einfach durch Ändern der Konfigurationsdatei für den virtuellen Host behoben werden. einfach das Verzeichnis-Tag konfigurieren enthalten diese

<Directory "your directory here"> 
    Order allow,deny 
    Allow from all 
    Require all granted 
</Directory> 

Die Require all granted ein neues Feature, das ich denke; einen Standardwert von denied haben.

siehe diese Seite für weitere Informationen: http://httpd.apache.org/docs/current/mod/core.html#directory

+1

Das hat es für mich behoben! Danke – STW

+3

Anscheinend sind Auftrag und Erlaubnis für 2.4 nicht erforderlich? –

+7

Das 'Erfordern alle gewährt 'ist Gold. Danke vielmals! –