Hola, el otro día tuve que probar una aplicación en local, y tuve que configurar virtual hosts en mi apache y ubuntu 12.04. Tras algunas pruebas he llegado a un compromiso para poder probar aplicaciones como si estuvieran subidas al dominio correspondiente en local pero sin cargarme localhost (para poder seguir accediendo a localhost/pruebas, por ejemplo). He aquí cómo lo he hecho paso por paso:
Por ejemplo, vamos a configurar un vhost llamado www.programatest.com que va a apuntar a /var/www/programate. Para ello tenemos que modificar varios ficheros:
- Meter en /etc/hosts la siguiente línea, que provoca que cuando escribamos en el navegador www.programatest.com se consulte a nuestro apache local:
# Prográmate local
127.0.0.1 www.programatest.com
- En el fichero /etc/apache2/ports.conf, la directiva
NameVirtualHost *:80
pasa a ser
NameVirtualHost localhost:80
Creo que esto es porque * lo coge todo, y cogería también www.programatest.com, etc.
- En /etc/apache2/sites-available/default, cambiamos
por
- Y ya finalmente enlazamos simbólicamente en /etc/apache2/sites-enabled un fichero que creamos en /etc/apache2/sites-available (yo lo he llamado www.programatest.com) con las siguientes líneas:
DocumentRoot /var/www/programate
ServerName www.programatest.com
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
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
Aquí la directiva Directory la meto porque estoy trabajando con zend.
De esta manera tenemos acceso a los virtual hosts y a localhost sin que nos dé ningún warning ni cosas de esas.
y luego, claro, reinicio apache con sudo service apache2 restart.
¡Que os sea de provecho!