Apache no puede acceder a las carpetas en mi directorio personal

22

He cambiado la configuración de Apache para que apunte a una carpeta en mi directorio personal:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    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>

Incluso he dado mi permiso de /home/dbugger/html 777. Pero sigo recibiendo el mismo mensaje de error en http://localhost : "403 Prohibido"

¿Qué es lo que me estoy perdiendo?

    
pregunta Enrique Moreno Tent 28.07.2013 - 03:24

4 respuestas

17

Esto funcionó para mí

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

Lo importante era cambiar

Order allow, deny

a

Require all granted 
    
respondido por el szydan 25.04.2014 - 14:47
16

Habilitar el módulo userdir :

  

sudo a2enmod userdir

Habilita la ejecución de PHP en el directorio de usuario:

  

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

Comenta esta parte:

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

Presione Ctrl + X para guardar

Habilitar listado de directorios:

  

sudo nano /etc/apache2/apache2.conf

Añadir esto:

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

Presione Ctrl + X para guardar

Reinicie Apache (también se requiere sudo aquí):

sudo service apache2 restart

Ahora coloca tus archivos php en el directorio / home / yourname / public_html y ve a enlace desde su navegador web.

    
respondido por el David Greene 31.08.2014 - 00:10
10

Apache se ejecuta como el usuario www-data . Si no tiene permiso de ejecución en su hogar, apache no podrá leer ningún archivo.

Cambia el grupo de tu hogar a www-data :

chgrp www-data /home/dbugger

Y dale permiso solo para recorrer tu directorio personal:

chmod g+x /home/dbugger

También puede restringir los permisos de /home/dbugger/html :

chgrp www-data /home/dbugger/html
chmod 750 /home/dbugger/html
    
respondido por el Eric Carvalho 28.07.2013 - 03:38
1

No necesita cambiar los permisos si desea usar su directorio principal para alojar el entorno de desarrollo, al menos que necesita permisos de escritura para algunas aplicaciones. Necesita el módulo apache mod_userdir y puede acceder a / home / user_name / public_html / * como este enlace * para usar un virtual hosts, para usar el módulo mod_userdir necesita crear un enlace de Sym como este:

$ 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
    
respondido por el user1916831 28.07.2013 - 04:13

Lea otras preguntas en las etiquetas