Casi todos los proyectos de desarrollo web que hago los pruebo en mi ordenador mediante un virtualhost. De esta forma las normas del mod_rewrite son las mismas en mi ordenador y en el servidor final y además resulta muy sencillo saber desde el código si estamos en un entorno de desarrollo o de producción (basta con mirar la variable “superglobal” $_SERVER[‘HTTP_HOST’]).
Aprovecho y copio un ejemplo de parámetros de configuración de un virtualhost en Apache:
<VirtualHost *:80>
ServerName proyecto1dev
ServerAlias proyecto1dev_a proyecto1dev_b proyecto1dev_c
ServerAdmin koas@localhost
DocumentRoot /home/koas/Server/htdocs/proyecto1
<Directory /home/koas/Server/htdocs/proyecto1/>
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Bueno, a lo que vamos. Para acceder a estos virtualhosts simplemente edito el fichero /etc/hosts y añado esta línea:
127.0.0.1 proyecto1dev
De esta forma al escribir http://proyecto1dev en el navegador llegamos al virtualhost deseado.
¿Dónde está el problema aquí? Pues en que algo tan sencillo como añadir una línea al fichero /etc/hosts es complicado de hacer en un móvil o en una tableta. No sé cómo será en otros sistemas operativos, pero en Android requiere hacerle root al teléfono y en iOS hacer jailbreak. Para evitarnos ese engorro usaremos una solución alternativa: instalar en nuestro ordenador (en el que podemos editar el fichero /etc/hosts) un servidor proxy y configurar los dispositivos móviles para que lo utilicen. Estos son los pasos necesarios:
– Instalamos el servidor proxy en nuestro ordenador.
sudo apt-get install tinyproxy
– Editamos el fichero de configuración /etc/tinyproxy.conf y añadir tantas líneas de este tipo como necesitemos para las direcciones IP de nuestros móviles, tabletas, etc:
Allow 192.168.0.2
– Una vez hecho esto nos vamos a la configuración de internet del teléfono o de la tableta y activamos el proxy: como dirección IP pondremos la del ordenador en el que hemos configurado el proxy y como puerto 8888. No es necesaria autentificación.
¡Y listo! Después de estos pasos si en una tableta ponemos http://proyecto1dev (muy importante el http://) accederemos sin problemas a nuestro virtualhost.
Este método no es perfecto, ya que si apagamos el ordenador el proxy deja de funcionar y nos quedaremos sin acceso a internet en la tableta o teléfono. Para recuperarlo tendremos que volver a la configuración de internet del dispositivo y desactivar el proxy.
Por este motivo el proceso se puede hacer un poco engorroso y quizá sea una solución más sencilla hacer root o jailbreak al dispositivo y editar el fichero /etc/hosts.