Pasemos al tema central de esta entrada ¿Cómo configurar distintos sitios en una misma máquina? Pero, primero veamos que es un virtual host.
Virtual hosts
El término virtual host se refiere a la práctica de ejecutar más de un sitio web en una sola máquina. Los virtual hosts pueden ser ‘basados en IP’, tienes una dirección IP diferente para cada sitio web, o ‘basados en nombre’, tienes varios nombres ejecutándose en una sola dirección IP. El hecho de que se están ejecutando en el mismo servidor físico no es evidente para el usuario final.
Problema
Tenemos nuestro localhost
predeterminado: http://localhost/
y vamos a iniciar unos cuantos proyectos para los cuales necesitamos sus respectivos sitios separados del localhost
.
En este momento tenemos algo como esto:
Dirección IP | Dominio | Document root |
---|---|---|
127.0.0.1 | http://localhost/ | /var/www/ |
Y nosotros queremos algo como esto:
Dirección IP | Dominio | Document root |
---|---|---|
127.0.0.1 | http://localhost/ | /var/www/ |
127.0.0.1 | http://symfony.local/ | /home/alejandro/workspace/symfony/tutorial/ |
127.0.0.1 | http://cakephp.local/ | /home/alejandro/workspace/cakephp/tutorial/ |
Es decir, necesitamos que tres diferentes sitios (http://localhost/
, http://symfony.local/
y http://cakephp.local/
) estén alojados en la misma computadora, en este caso en local (127.0.0.1
). De esta forma al teclear la dirección: http://localhost/
, se nos mostrará el contenido de la carpeta /var/www/
y de manera análoga ocurrirá lo mismo con las demás direcciones configuradas.
Qué ventajas tiene esto, básicamente poder separar las configuraciones de Apache para cada sitio, es más estructurado, se pueden implementar las configuraciones que se tendrán en el servidor de producción (configuraciones, URL, etc.), seguridad, etc.
Solución
En el archivo /etc/hosts
agregamos las siguientes líneas:
127.0.0.1 symfony.local
127.0.0.1 cakephp.local
En el archivo /etc/apache2/ports.conf
eliminamos la línea.
NameVirtualHost *:80
En el archivo /etc/apache2/sites-available/default
colocamos la siguiente línea al inicio del archivo.
NameVirtualHost 127.0.0.1:80
Al final de dicho archivo agregamos la configuración para los sitios http://symfony.local
y http://cakephp.local
.
#Symfony
ServerName symfony.local
DocumentRoot /home/alejandro/workspace/symfony/tutorial/
#CakePHP
ServerName cakephp.local
DocumentRoot /home/alejandro/workspace/cakephp/tutorial/
Finalmente, reiniciamos el servidor.
# /etc/init.d/apache2 restart
Nota: Solo se incluyeron los parámetros necesarios para hacer funcionar los virtual hosts.
No hay comentarios:
Publicar un comentario