Acceder a cuentas de usuario en Linux desde el servidor web

En el intento de comenzar a usar intensivamente GIT al interior del equipo de desarrollo me topé con la necesidad de mostrar online lo que vamos avanzando inmediatamente después de la subida de los cambios.

Con esta intención comencé a crear cuentas para cada desarrollador que intenvendría en el proceso y comencé a crear enlaces blandos desde la cuenta de cada usuario a la carpeta que mostraría sus avances en el servidor web. Además que no me resultó como esperaba, me parecía un proceso muy engorroso estar configurando a cada momento un enlace blando por cada proyecto.

Entonces, me puse a pensar si no sería más fácil mostrar directamente el contenido de la carpeta home/ de cada usuario directamente en el servidor web. Averiguando me encontré con estos dos enlaces:

http://httpd.apache.org/docs/2.0/mod/mod_userdir.html

http://httpd.apache.org/docs/2.0/howto/public_html.html

En ellos descubrí que podía indicar en el archivo de configuración del Apache el nombre de la carpeta (dentro de la carpeta del usuario) que sería visible en el servidor web a través de la directiva .

<code>

UserDir public_html

</code>

En el caso de los servidores administrados con Virtual Host Manager (VHM) esta carpeta se llama 'public_html' y va ubicada en /home/usuario/public_html

Además esta carpeta 'public_html' debe tener permisos 711 para que sean visibles desde el servidor web. Si estamos en un Ubuntu server entonces debemos tener activado el módulo userdir del apache. Si no lo tienen, entonces podemos usar el comando 'sudo a2enmod userdir' para activarlo y luego editar el archivo 000-default con el siguiente comando 'sudo nano -c /etc/apache2/sites-enabled/000-default'. El contenido del archivo debe quedar más o menos así.

<code>
<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews +Includes
AllowOverride All
Order allow,deny
allow from all
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>
UserDir public_html
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 /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/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>

</code>

Si tenemos todo listo entonces cada vez que creemos un usuario -por decir el usuario 'dummie'- entonces la dirección url será:

http://www.miweb.com/~dummie/

donde 'dummie' estará mostrando el contenido de la carpeta /home/dummie/public_html

Etiquetas