Home / Tutoriales / Configurar “UserDir” en un servidor LAMP

Configurar “UserDir” en un servidor LAMP

Primero que nada gracias a todos por sus comentarios en mi Post más leído “Instalar servidor LAMP en Fedora 14 / 15 / 16 / 17” se que les agrado y eso motiva mucho para seguir escribiendo.

Server_Linux

Segundo por un comentario de nuestro colaborador @Cibernetx quien me pidió este modulo, y después de una investigación aquí esta el tutorial sencillo, pequeño y práctico.

Esto funciona (en teoría) en las versiones de Fedora 17/16/15/14/13/12, además de CentOS 6.3/6.2/6.1/6/5.8 y Red Hat (RHEL) 6.3/6.2/6.1/6/5.8 (solo probado en Fedora 16 y 17)

¿Qué es y para qué sirve el modulo UserDir?

Este modulo permite que podamos guardar los archivos de nuestra página web en nuestra carpeta personal (/home/usuario/public_html) en ves de la carpeta por defecto (/var/www/) además de que cada usuario del sistema tiene una URL en http://localhost ejemplo:

  • http://localhost/~usuario1
  • http://localhost/~usuario2
  • http://localhost/~usuario3

¿Cuál es el inconveniente en Fedora?

Al principio encontré mucha información para ubuntu, pero en Fedora hay un problema, SELinux, que bloquea la URL http://localhost/~usuario con un Forbidern Error 403, pero como siempre lo he solucionado 😉

1. Crear /etc/httpd/conf.d/userdir.conf file

Lo primero (como siempre) es abrir una terminal como root

sudo su

Ahora crearemos el archivo /etc/httpd/conf.d/userdir.conf

gedit /etc/httpd/conf.d/userdir.conf

Dentro de el pondremos lo siguiente:

<IfModule mod_userdir.c>
    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    UserDir enabled usuario

    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disabled" line above, and uncomment
    # the following line instead:
    #
    UserDir public_html

</IfModule>

<Directory /home/*/public_html>
        Options Indexes Includes FollowSymLinks

        AllowOverride All
        Allow from all

        Order deny,allow
</Directory>

Sustituimos usuario por nuestro nombre de usuario Guardamos y cerramos.

UserDir

En la linea UserDir enabled usuario asignaremos a los únicos usuarios que estarán disponibles, para activar varios usuarios puedes usar:

UserDir enabled usuario1 usuario2 usuario3

2. Reiniciar Apache

Reiniciamos apache desde la Terminal

service httpd restart

 3. Crear carpeta /home/usuario/public_html

Creamos la carpeta donde se guardarán nuestros archivos “public_html”

mkdir /home/usuario/public_html/

03

4. Establecer permisos

Ahora, por seguridad establecemos los permisos correctos para la carpeta personal y para public_html 

chmod 711 /home/usuario
chmod 755 /home/usuario/public_html

5. Configurando SELinux y UserDir

Aquí es donde resolvemos el problema del 403 Forbidern Error

setsebool -P httpd_enable_homedirs true
chcon -R -t httpd_sys_content_t /home/usuario/public_html

06

Una vez que añadimos las excepciones a SELinux tenemos todo listo ahora podemos entrar a

http://localhost/~usuario sin problemas

07

El carácter “~” se consigue presionando ALT + 4 .

About Ricardo Osorio

WebDeveloper, Geek, Pentester y SysAdmin | Fundador de www.xora.org @HackeaMesta contacto@xora.org