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.