"El diseño es el embajador silencioso de tu marca"
- Paul Brand

VirtualHosts en Wamp

Que es Wamp?

Wamp es un WebServer para el sistema operativo Windows, lo puedes descargar desde aquí, es interesante instalar un paquete como este pues la ultima versión por ejemplo ya nos dejaria funcionando en el equipo todo esto:

  • Apache 2.4.23
  • PHP 5.6.25/7.0.10
  • MySQL 5.7.14
  • PhpMyAdmin 4.6.4
  • Adminer 4.2.5
  • PhpSysInfo 3.2.5

Como vemos con un solo paquete instalamos y dejamos perfectamente configuradas toda la pila de aplicaciones necesaria para desarrollar en este caso webs basadas en PHP con una base de datos relacional MySql.

El uso de este tipo de paquetes es muy utilizado, y podemos encontrar distintas versiones, si usaramos un linux tendriamos la pila LAMP y también es muy usado el XAMPP que trae MariaDb en vez de MySql (prácticamente lo mismo) e incorporar Perl.

No es la unica manera de preparar de forma rápida un entorno de desarrollo, tambien nos prodríamos valer del uso de tecnologías mas portables como los contenedores ligeros con Docker o de máquinas virtuales con Vagrant, per eso es otro tema, solo lo menciono por si os interesa investigar pues es bastante interesante.

Que son los VirtualHosts en Wamp?

Un VirtualHost o Servidor Virtual es un directorio que está alojado en nuestro propio equipo y que nuestros dns reconocen con un nombre específico como si de una página web de internet se tratara.

Pensemos en lo siguiente, cuando nosotros escribimos el nombre de una pagina web como podría ser esta misma (www.oscarlijo.com) son los servidores DNS que tenemos configurados en el equipo los que traducen ese nombre de dominio a una dirección IP donde nosotros tenemos colgada la web, lo que sería nuestro hosting.

Cuando creamos un servidor virtual estamos diciendole a nuestro equipo que levante determinado directorio bajo el nombre de dominio que le asignemos, de manera que cuando entremos a nuestro WebServer local, él traduzca ese nombre y lo enrute.

Aunque con ello estamos simulando que un nombre de dominio real resuelve un directorio local surgen algunas cuestiones que podemos aclarar:

  • Lo primero, si pisamos un dominio real y ahora navegamos lo que se muestra no es lo que está colgado en Internet sino nuestro equipo, por lo que los hosts virtuales tienen preferencia.
  • Están configurados en nuestro equipo de manera que solamente estarán disponibles en él.
  • Si tiramos el apache no esperemos que al no encontrarlo en nuestro localhost resuelva la dirección remota.

 

Creando nuestro primer VirtualHost

Como la manera recomendada de trabajar con Wamp es crear VirtualHosts vamos a crear uno, voy a poner ejemplo al igual que antes con mi propia web, si abro un navegador y escribo www.oscarlijo.com veo esto:

Ahora voy al icono que esta en la barra de tareas y pulso el icono de wamp con el botón izquierdo, navego hasta Apache->httpd-vhosts.conf y se nos abre un editor de texto con el contenido de este fichero que es en el que Wamp declara los VirtualHosts.

Si no queremos usar el icono o el editor que nos abre no es el nos gusta podemos ir directamente a la carpeta donde está nuestro apache y abrirlo en mi caso es:

C:\wamp64\bin\apache\apache2.4.23\conf\extra\httpd-vhosts.conf

Y seguramente tú lo tengas en el mismo sitio salvo que hayas indicado en la instalacion del wamp otra unidad o directorio, o tengas una versión de apache distinta, en cualquier caso estoy seguro que no vas a tener problema para localizarlo.

Una vez dentro para declarar un virtualhost nuevo (yo en mi caso quiero machacar mi página web) hariamos esto:

#www.oscarlijo.com
<VirtualHost *:80>
	ServerName www.oscarlijo.com
	DocumentRoot c:/wamp64/www/oscarlijo
	<Directory  "c:/wamp64/www/oscarlijo">
		Options +Indexes +Includes +FollowSymLinks +MultiViews
		AllowOverride All
		Require local
	</Directory>
</VirtualHost>

Con esto ya lo tenemos declarado así que al entrar a nuestro localhost con el nombre que indicamos en el ServerName nos dirige a lo que tenemos en el directorio que pusimos en DocumentRoot (c:/wamp64/www/oscarlijo).

Fácil verdad? Solo falta un paso más y es decirle a nuestro sistema operativo que cuando escribamos esa url tire contra el servidor local y no contra Internet, lo hacemos en el fichero de hosts de Windows, el cual podemos encontrar en:

C:\Windows\System32\drivers\etc\hosts

Bastaría con que pusieramos estas lineas.

127.0.0.1       www.oscarlijo.com
::1             www.oscarlijo.com

En ellas le decimos que oscarlijo.com lo vaya a buscar a 127.0.0.1 que es nuestro propio equipo, como es un navegador atacará el puerto 80 y ya desde ahí el Wamp se encarga.

Ahora si volvemos a abrir el navegador y escribimos otra vez www.oscarlijo.com veo esto:

 

Básicamente porque no he creado dentro de la carpeta www del wamp un directorio con ese nombre que tenga un index para que lo muestre, el caso es que ya hemos redirigido ese dominio real contra nuestra máquina.

Sin usar VirtualHosts

Antes el wamp no los usaba y fue en la version 3 que los incorporaron como la manera correcta, por eso a todos los que veniamos usandolo desde hace tiempo nos fallaba el acesso a nuestro proyectos desde la página de wamp, porque básicamente nos borraba el localhost de la dirección y como no teniamos definidos los virtuales fallaba.

Para verla teniamos que volverlo a escribir a mano en la url y esto toca las narices, podemos evitar este comportamiento editando el index.php que encontramos en:

C:\wamp64\www

Si nos vamos a linea 33 encontramos

$suppress_localhost = ($wampConf['urlAddLocalhost'] == 'off' ? true : false);

Simplememte lo cambias por

$suppress_localhost = false;

Y todo vuelve a funcionar (si no es en esa linea busca la variable $suppress_localhost).

Con esto ya sabemos que son, para que valen, como usarlos y como configurar wamp si queremos prescindir de ellos.

The following two tabs change content below.
Especialista en diseño web responsive, programador html5, css3, jquery, php y java.

Latest posts by Óscar Lijó (see all)