Bueno, para aquellos que no lo saben. ¿Qué es un virtual host? O empezando por lo básico:
¿Qué es un host?.
Según los anónimos editaros de la wikipedia en español, el término informático host, puede referirse a (todo muy relacionado):
Nosotros tomaremos la segunda opción. Por lo tanto interpretaremos a un virtual host como la práctica de tener varios dominios funcionando sobre el mismo equipo.
Hay dos tipos de virtual hosts. Basados en direcciones IP (asignando una IP a cada dominio) o basados en nombres. Aqui hablaremos de vhosts basados en nombres (pero sos libre de obtener mas informacion de vhosts), lo que nos permite tener por ejemplo:
El sitio:
http://www.fallenjehova.com.ar/
en la carpeta:
c:\wamp\www\fallenjehova\
Y el sitio:
http://www.notengoningunotrositio.com.ar/
en la caperpeta:
c:\wamp\www\notengonada\
¿Qué utilidad le encuentro a esto?
A nivel desarrollo, me parece mucho más cómodo en el sentido de que no tengo que andar poniendo http://localhost/sdaf/asdfasd/asd/dasf/das/sdf/ para ubicar mis projectos en las carpetas. Además cuando tengo que realizar modificaciones sobre sitios que lamentablemente tienen los paths hardcodeados en los links, puedo tenerlo funcionando en segundos sin tener que molestarme en andar reemplazando todo.
Ni a hablar la ventaja de los vhost a nivel servidor, básicamente muchísimos hostings utilizan los vhost para ofrecer diversos dominios en una misma pc, y con una misma ip.
Configuración
Suponiendo que queremos la configuración arriba propuesta. Para habilitarlo tendremos que modificar dos archivos. El primero es el conocido httpd.conf y descomentar o agregar la siguiente linea:
# Virtual hosts Include conf/extra/httpd-vhosts.conf
Ademas debemos configurar los directorios donde estarán nuestros sitios y con las opciones que deseamos para cada uno:
<directory C:/wamp/www/fallenjehova>
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from All
</directory>
<directory C:\wamp\www\notengonada\>
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from All
</directory>
Luego en conf/extra/httpd-vhost.conf
<virtualhost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "C:/wamp/www/fallenjehova"
ServerName www.fallenjehova.com.ar
ErrorLog ../logs/fallenjehova_apache_error.log
CustomLog ../logs/fallenjehova_access_log common
</virtualhost>
<virtualhost *:80>
ServerAdmin webmaster@localhost
DocumentRoot “C:/wamp/www/notengonada”
ServerName www.notengoningunotrositio.com.ar
ErrorLog ../logs/notengonada_apache_error.log
CustomLog ../logs/notengonada_access_log common
</virtualhost>
Luego reiniciamos apache y todo debería estar funcionando. Pero ahora bien, cuando querramos tipear esos hosts en el browser si existe nos va a direccionar no a nuestro server sino a donde esté alojado ese sitio, y si no existe nos dirá que no existe el host. Para poder acceder a esas direcciones localmente, debemos editar el archivo hosts: /etc/hosts (en linux) o c:\WINDOWS\system32\drivers\etc\hosts ( en windows ).
Agregando una entrada con nuestra ip (127.0.0.1 y el nombre de dominio que queremos). De esta forma, desde nuetra maquina si ponemos en el browser al sitio www.notengoningunotrositio.com.ar, accederemos a los sitios. Obviamente perdemos la capacidad de acceder al sitio original, ya que lo resolverá como dirección local.
El equipo de desarrollo anunció, luego de tres años de php5, que dejarán de soportar php4 a fines de este año. Esto se debe a que php5 "es rápido, estable y se encuentra listo para entornos de producción" y a que php6 está en camino.
Para ayudar en las migraciones, podrán encontrar un guía de migración (en inglés) aunque hay buena info dando vueltas para quienes no manejan este idioma.
Por mi parte estoy contento con este anuncio, ya que hará que un gran segmento del mercado que cree que los programadores tenemos que seguir desarrollando con soporte para php4 cambie de idea.
Recientemente leí via ribosomatic un post que explicaba como la gente de www.modernbluedesign.com se las ingenió para reconocer spambots utilizando una técnica muy simple:
Considerando que los bots llenan todos los campos del formulario donde postean, si ocultamos un campo con css y a la hora de validar los campos, éste está escrito, estamos ante la presencia de un bot.
En ribosomatic pueden ver el ejemplo.
Antes:
teléfono: Riiing!
A: ¿Hola?
B: Hola ¿estaría C?.
A: Si ya te paso. (Aleja el tubo). C!!!! para vos!
C: ¿Quién es?
A: Ni idea!
C: ¿Hola?
B: Hola C! Habla B. Como andas personaaa! ¿Todo bien?
C: B!! Querido! Todo bien ¿y vos?
Hoy:
celular: *Punchi punchi punchi punchi punchi*
C: (Nótese la ausencia de A) ( Relojea una pantallita ). B!! Querido! ¿Cómo andas?
B: Bien, ¿y vos? Te llamaba para...
¿Porqué hoy las primeras en saludar son las personas que son llamadas? ¿Porqué no puede tener la primicia de saludar primero, si con ese motivo uno llama? Encima los aparatitos dan el lujo de que el otro no quiera atenderte "selectivamente".
Los celulares acabaron con la vida social de los densos. ¿Qué tiene que ver con lo que yo decía? No se. Pero esta verdad se me reveló hoy como agua para chocolate.