So che questa domanda viene posta molto, ma le soluzioni che ho visto non hanno funzionato per me.
Ho solo un host virtuale abilitato e sto provando ad abilitare l'accesso a una cartella che non è nella radice del documento
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Alias /movies /home/username/Videos/Movies
<Directory /home/username/Videos/Movies/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Ho impostato /etc/apache2/envvars
come segue
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=public
Mi sono assicurato che / home / username / Videos / e le sue sottocartelle siano di proprietà di username:public
, ho impostato le autorizzazioni su 777 (dopo che 775 non ha funzionato) e mi sono assicurato che l'utente www-data
appartenesse al gruppo public
.
Ora, quando cerco di http://localhost/movies
ottenere
[Mon Apr 21 11:28:14.971844 2014] [core:error] [pid 1385:tid 140067725104896] (13)Permission denied: [client 127.0.0.1:46603] AH00035: access to /movies/ denied (filesystem path '/home/username/Videos') because search permissions are missing on a component of the path
Ma quando ho impostato /etc/apache2/envvars
per eseguire Apache sotto username
(il mio nome utente) tutto funziona bene. Il problema è legato alle autorizzazioni, ma non vedo come nel mio caso; soprattutto quando imposto le autorizzazioni su 777
. Qualche idea?
PS La versione Ubuntu è 14.04, Apache è 2.4.7 e non ho modificato altri file di configurazione.
/home
con ACL abilitato? (c'è un segno "+" alla fine dei bit di autorizzazione se è il caso (verificare con ls -l
))