Apache non può accedere alle cartelle nella mia home directory

22

Ho modificato la configurazione di Apache in modo che punti verso una cartella nella mia directory home:

<VirtualHost *:80>
    ServerAdmin [email protected]

    DocumentRoot /home/dbugger/html

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/dbugger/html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Ho persino dato il mio /home/dbugger/html permesso 777. Ma continuo a ricevere lo stesso messaggio di errore su http://localhost : "403 Proibito"

Che cosa mi manca?

    
posta Enrique Moreno Tent 28.07.2013 - 05:24

4 risposte

17

Questo ha funzionato per me

<Directory />
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
    Allow from all
</Directory>

Il bit importante era cambiare

Order allow, deny

a

Require all granted 
    
risposta data szydan 25.04.2014 - 16:47
16

Abilita modulo userdir :

  

sudo a2enmod userdir

Abilita l'esecuzione di PHP nella directory utente:

  

sudo nano /etc/apache2/mods-available/php5.conf

Commenta questa parte:

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

Premi Ctrl + X per salvare

Abilita elenco di directory:

  

sudo nano /etc/apache2/apache2.conf

Aggiungi questo:

<Directory /home/*/public_html/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Premi Ctrl + X per salvare

Riavvia apache (sudo richiesto anche qui):

sudo service apache2 restart

Ora metti i tuoi file php nella directory / home / yourname / public_html e vai al link da il tuo browser web.

    
risposta data David Greene 31.08.2014 - 02:10
10

Apache viene eseguito come utente www-data . Se non ha il permesso di esecuzione sulla tua casa, apache non sarà in grado di leggere alcun file.

Cambia il tuo gruppo di casa in www-data :

chgrp www-data /home/dbugger

E dargli il permesso di attraversare la tua home directory:

chmod g+x /home/dbugger

Puoi anche limitare le permissioni di /home/dbugger/html :

chgrp www-data /home/dbugger/html
chmod 750 /home/dbugger/html
    
risposta data Eric Carvalho 28.07.2013 - 05:38
1

Non è necessario modificare le autorizzazioni se si desidera utilizzare la directory home per ospitare l'ambiente di sviluppo, almeno che è necessario disporre delle autorizzazioni di scrittura per alcune applicazioni. Hai bisogno del modulo mod_userdir di apache e puoi accedere a / home / user_name / public_html / * come questo link * per utilizzare un virtual host, per utilizzare il modulo mod_userdir è necessario creare un collegamento simbol come questo:

$ sudo ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/
$ sudo ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/
$ sudo service apache2 restart
    
risposta data user1916831 28.07.2013 - 06:13

Leggi altre domande sui tag