2013-07-14 11 views
37

Io corro Ubuntu 13.04 a 64 bit sul mio desktop, ho installato Apache2, MySQL e PHP eccApache2 virtualhost 403 vietato?

volevo avere il mio principale del web in /home/afflicto/public_html invece di /var/www. Quindi sono andato con questa guida:
http://www.maketecheasier.com/install-and-configure-apache-in-ubuntu/2011/03/09
(Ho fatto tutto da "configurare siti diversi") come mi piace la soluzione di più.

Ecco quello che ho fatto:
Installato Apache2, MySQL ecc ..
copiati /etc/apache2/sites-avaliable/default a /etc/apache2/sites-available/afflicto. Poi modificato esso, sembra ora simile al seguente:

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

ho fatto sudo a2dissite default && sudo a2ensite afflicto && sudo service apache2 restart

ho creato un index.php e index.html in /home/afflicto/public_html/test/
quando si accede a localhost/test o localhost/test/index.html ecc., Ottengo 403 errore proibito.

Cosa sto sbagliando? Grazie in anticipo.

aggiornamento 1
Ho impostato il proprietario della directory public_html a www-data.
sudo chmod -R +x public_html && sudo chmod -R 777 public_html
Ancora lo stesso errore 403.

ecco l'output del log degli errori apache:

[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 

risposta

19

venuto fuori ho dovuto chmod non solo /home/afflicto/public_html ma anche /home/afflicto/ directory pure.

Strano.

+7

corretta. Il processo di apache deve avere accesso a tutte le directory nel percorso. Inoltre, il processo di apache richiede che ogni directory abbia accesso mondiale o non servirà la directory al mondo (esterno). – dsh

+0

sono rimasto bloccato fino a quando non ho applicato questo. Grazie! –

+2

Non è affatto strano. Il tuo dichiarato 'DocumentRoot' è'/home/afflicto/public_html', quindi deve essere accessibile da Apache. – JakeGould

92

Mi sono trovato di fronte a questo problema. Ma non mi piaceva l'idea di cambiare il gruppo della mia home directory in www-data. Questo problema può essere risolto semplicemente modificando il file di configurazione per virtualHost. È sufficiente configurare il tag directory per includere questi

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

Il Require all granted è una nuova funzionalità immagino; con un valore predefinito di denied.

vedere questa pagina per ulteriori informazioni: http://httpd.apache.org/docs/current/mod/core.html#directory

+1

Questo lo ha risolto per me! Grazie – STW

+3

Apparentemente Order e Allow non sono richiesti per 2.4? –

+7

Quel 'Require all granted' è oro. Molte grazie! –