Directorios virtuales en Ubuntu

Digo Ubuntu sólo porque es la distro que uso, pero esto vale para cualquier distribución Linux.

Los directorios virtuales son comodísimos a la hora de desarrollar sitios web sobre Apache. Lo hago a menudo y por eso lo recomiendo. Doy por hecho que Apache está correctamente instalado y configurado.

En mi directorio de usuario creo un directorio llamado http (donde pongo username has de poner tu nombre de usuario, obviamente)

$ mkdir /home/username/http

En ese directorio voy a construir mis proyectos web. Creo el directorio de mi primer proyecto web (donde pongo proyecto1 has de poner el nombre de tu proyecto, obviamente).

$ mkdir /home/username/http/proyecto1

Recomiendo, para no complicarnos la vida, dar a este tipo de directorios nombres sin eñes, tildes ni espacios.

Y sólo por tener algo, creo el clásico index.html conteniendo el típico saludo:

$ echo "<h1>Hola mundo</h1>" > /home/username/http/proyecto1/index.html

Bueno. Como este directorio no está donde Apache espera que estén sus directorios web, lo primero que tengo que hacer es notificar a Apache esta situación especial. Le diré a Apache que no es el típico directorio web sino un directorio virtual: Un directorio web creado donde me dió la gana ;)

Doy de alta proyecto1 como directorio virtual:

$ cd /etc/apache2/sites-available
$ sudo cp default proyecto1
$ sudo gedit proyecto1

En el documento que se abre, para no complicarnos, sustituyo el texto por este otro (adáptalo según tus necesidades, claro):

<VirtualHost *:80>
ServerAdmin aqui.tu@email.com
ServerName proyecto1
DocumentRoot /home/username/http/proyecto1
  <Directory />
  Options FollowSymLinks
  AllowOverride None
  </Directory>
  <Directory /home/username/http/proyecto1 >
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order deny,allow
    Allow from all
  </Directory>
</VirtualHost>

Y activo este directorio virtual:

$ sudo a2ensite proyecto1

Edito el archivo hosts en conformidad:

$ sudo gedit /etc/hosts

añadiendo esta línea:

127.0.0.1 proyecto1

Reinicio Apache

$ sudo /etc/init.d/apache2 reload

Y ya está. En http://proyecto1 puedo ver mi página Hola mundo. Ahora, ¡a trabajar!


Acerca de esta entrada