En los sistemas operativos con múltiples usuarios, cada usuario puede tener su propio sitio web almacenado en una subcarpeta dentro de su carpeta personal. Para ello se utiliza la directiva UserDir. Los visitantes deberán indicar la dirección http://servidor.com/~nombreusuario para obtener el contenido de la carpeta indicada en la directiva UserDir, dentro de la carpeta personal de la cuenta de usuario con nombre nombreusuario.

Activación en Ubuntu

La configuración básica necesaria para activar los directorios de usuarios, se encuentra en los siguientes archivos alojados en la carpeta de configuración de Apache (/etc/apache2):

  • mods-available/userdir.conf
  • mods-available/userdir.load

En la carpeta mods-available (módulos disponibles) se encuentran archivos de configuración y de carga de módulos que están disponibles para ser incluidos en la configuración de Apache. Para habilitar cualquiera de esos módulos, tan sólo hay que incluir en la carpeta mods-enabled (módulos activados) enlaces simbólicos a los archivos correspondientes a un determinado módulo de la carpeta mods-available.

Para añadir enlaces a los archivos anteriores dentro de la carpeta mods-enabled, debes indicar las siguientes instrucciones:

sudo ln -s /etc/apache2/mods-available/userdir* /etc/apache2/mods-enabled

Puedes activar el módulo userdir del servidor web Apache con la instrucción:

sudo a2enmod userdir

Comprueba que en la carpeta /etc/apache2/mods-enabled aparecen los enlaces simbólicos a userdir.conf y userdir.load.

userdir01

Si observas el contenido del archivo userdir.conf, puedes encontrar la siguiente línea:

UserDir public_html

Así se está indicando que los usuarios deben almacenar sus webs en una carpeta llamada public_html dentro de su carpeta personal (/home/nombreusuario/public_html). Si deseas que los usuarios utilicen otra carpeta para almacenar sus páginas web, debes modificar esa línea de configuración para indicar ahí el nombre deseado para las carpetas.

Recuerda, como siempre, reiniciar el servidor web Apache después de cada cambio en la configuración:

sudo service apache2 restart

Activación en Windows

El archivo de configuración de la versión 2.2 del servidor web Apache para Windows incluye las siguientes líneas que deben descomentarse:

#LoadModule userdir_module modules/mod_userdir.so
#Include conf/extra/httpd-userdir.conf

Esa última línea permite incluir en la configuración todo el contenido del archivo indicado (httpd-userdir.conf), que contiene las directivas necesarias para activar los directorios de usuarios, incluyendo las directivas siguientes:

UserDir "My Documents/My Website"
<Directory "C:/Users/*/My Documents/My Website">
...
</Directory>

Puedes ver que la carpeta que se agrega como directorio de los usuarios es "C:/Users/*/My Documents/My Website", sustityendo el '*' por el nombre de las cuentas de usuarios añadidas en el sistema Windows.

Debes tener en cuenta que en Windows 7 la carpeta "Mis documentos" de los usuarios se encuentra en la ruta "C:/Users/*/Documents" (sin la palabra "My"). Por lo que si haces la configuración en Windows 7 debes rectificar la ruta en el archivo de configuración para indicar a la carpeta apropiada. Además, si prefieres otro nombre de carpeta en lugar de "My Website", puedes indicar el nombre deseado para las carpetas de las web de los usuarios.

En caso de que utilices la versión 2.0 del servidor web de Apache, debes realizar las acciones anteriores de forma similar, aunque es ese caso toda la configuración se encuentra en el archivo httpd.conf, en lugar de incluirlo en la carpeta httpd-userdir.conf. Comprueba que están descomentadas cualquiera de las líneas que se han indicado anteriormente.

Creación automática de la carpeta public_html para nuevos usuarios

En Ubuntu se puede facilitar la labor de creación de la carpeta que podrá usar cada usuario para sus sitios web (por defecto public_html), creando una carpeta con el mismo nombre de la carpeta que deberá tener cada usuario, dentro de /etc/skel. Todos los archivos y carpetas que se encuentren dentro de /etc/skel, se crearán de manera automática en la carpeta home de cada nuevo usuario que se cree en el sistema.

cd /etc/skel
mkdir public_html

Por tanto, si a partir de ese momento se crea un usuario (adduser), tendrá dentro de su carpeta home una subcarpeta llamada public_html.