Tema:
VirtualHost y Dominio Virtual
Pregunta:
¿Como trabajo con VirtualHost(s) y Dominios Virtuales en mi PC?
Respuesta:
Podemos tranquilamente usar dominios virtuales para llamar a nuestros proyectos directamente como
http://miproyecto.com/ y no como
http://127.0.0.22/ (o cualquier otra IP asignada).
Vamos a ver como:
Creando servidores virtuales con dominios virtuales para poder llamarlos desde nuestra misma PC:
Requisitos:
* Windows 98/ME/2000/NT/XP
* Tener Apache instalado como servidor
* Tener al menos PHP para trabajar (y probar)
Supongamos que vamos a trabajar con un nuevo web site en PHP cuyo dominio real es
sitio.com y que tenemos el
htdocs en el disco
C: Primer paso:
Creamos en nuestra carpeta
C:\htdocs un directorio
sitio1.com
Nos quedará esto:
C:\htdocs\sitio1.com
En ese directorio debemos colocar los files que usemos para hacer el web site (todos).
En este ejemplo, abrimos el Block de notas y escribimos:
Código PHP:
<?
phpinfo();
?>
Lo salvamos con el nombre de
prueba.php en el directorio
..\sitio1.com\ Segundo Paso:
Ahora configuramos un VirtualHost para Apache:
Buscamos el file
httpd.conf en dónde tenemos instalado Apache (dentro de la carpeta de Apache hay una que se llama "conf", este file está dentro de ella)
Lo abrimos con el Block de notas y nos vamos al final del mismo
Nos encontraremos con algo así:
Código:
#
# Use name-based virtual hosting.
#
#NameVirtualHost *
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *>
# ServerAdmin [email protected]
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
Nosotros agregaremos nuestro VirtualHost aqui debajo y de esta manera:
Código:
## agregamos sitio1.com ###################
<VirtualHost 127.0.0.2>
ServerAdmin [email protected]
DocumentRoot C:/htdocs/sitio1.com
ServerName sitio1.com
ErrorLog logs/sitio1.com-error_log
TransferLog logs/sitio1.com-access_log
</VirtualHost>
Salvamos el file
httpd.conf y reiniciamos Apache.
Hasta aqui, si cargamos el navegador y ponemos:
http://127.0.0.2/prueba.php (enter), veremos la info de php en el mismo.
Ya tenemos configurado el VirtualHost con la IP deseada.
Tercer paso:
Vamos a configurar el dominio virtual para esa IP:
Vamos al directorio:
C:\WINDOWS\SYSTEM32\DRIVERS\ETC, allí encontramos varios files, pero nos interesan los siguientes:
HOSTS y
LMHOSTS.SAM
Renombramos
HOSTS como
HOSTS.SAM
Abrimos el Block de notas y escribimos:
127.0.0.1 localhost
127.0.0.2 sitio1.com
Lo salvamos en ese mismo directorio como
HOSTS (sin extensión)
Nuevamente abrimos el Block de notas y escribimos:
127.0.0.1 localhost #PRE
127.0.0.2 sitio1.com #PRE
Lo salvamos en ese mismo directorio como
LMHOSTS (sin extensión)
Copiamos
HOSTS y
LMHOSTS de
C:\WINDOWS\SYSTEM32\DRIVERS\ETC\ a
C:\WINDOWS\
Listo, hemos configurado el dominio virtual
sitio1.com
Para probarlo, cargamos el navegador y ponemos:
http://sitio1.com/prueba.php (enter), veremos nuevamente la info de php en el mismo.
Nota final:
De esta manera podemos llamar a nuestros proyectos en php/cgi/etc. con un nombre de dominio virtual o con un subdominio (podria ser mi.sitio.com) y no complicarnos
con las IP que si tenemos varios proyectos se nos olvidan.
De igual manera recuerden que si agregan mas proyectos (por ejemplo otrositio.com) deberán agregar otro VirtualHost en el file \Apache\conf\httpd.conf, al final del que ya tenemos con otra IP (por ej.: 127.0.0.3) y luego agregar estos datos en los files HOSTS y LMHOST que tenemos en C:\WINDOWS\
Por último: Recuerden
NO configurar un dominio virtual con un nombre verdadero que ya esté ruteado en internet, ya que si lo hacen cuando naveguen y quieran
ir al sitio real, no podrán, a menos que estopeen Apache y renombren los files HOSTS y LMHOST.
Recomiendo en esos casos que creen subdominios virtuales, por ejemplo si trabajan con yahoo.com (ja ja por un decir...), hagan un dominio virtual como miweb.yaoho.com.
Salu2.