VirtualBox como servidor web de pruebas

Oracle-VirtualBox Logo

En esta ocasión, vamos a explicar como montarnos nuestro propio servidor de pruebas. Lo normal, es tenerlo todo en local y trabajar simulando en nuestra máquina el servidor web, el servidor mysql (u oracle, sql server,…) y el intérprete de PHP; al mismo tiempo que es la máquina cliente y la máquina de desarrollo. Por lo tanto unimos tres entornos completamente distintos en una sola máquina, con el inconveniente de no estar en un medio de desarrollo lo más cercano a la realidad posible, sino más bien, un medio aproximado a la realidad. ¿Por qué digo esto? Pues muy sencillo, tu desarrollas en PHP, quizás con Symfony u otro framework, puede que incluso desarrolles tus aplicaciones a base de scripts propios sin basarte en ninguna plataforma en concreto de desarrollo y terminarás subiendo tu aplicación web a un servidor, en un 90% de los casos Linux, corriendo en ella su apache, en un servidor dedicado a la base de datos el mysql y puede que otros servicios interesantes como servidores de correo y demás. Sin embargo, tenemos la fea costumbre de desarrollar PHP bajo un cliente Windows como lo puede ser Windows 7 y corriendo en él un apache y un servidor mysql. ¿Qué nos puede ocurrir? Pues que las versiones de nuestro XAMPP, o cualquier otro paquete completo de herramientas de servidor web, o incluso instalación individualizada de cada componente antes mencionado estén desactualizados o tengan una configuración y un comportamiento que para nada se parece al servidor que finalmente alojará nuestra base de datos y nuestra aplicación.

¿Entonces qué hacemos para emular nuestro servidor de desarrollo web?

Pues fácil y sencillo, lo primero que tenemos que tener en cuenta es en qué compañía alojaremos nuestra aplicación. Para esto haría falta escribir otra entrada que ayudaría a cribar entre las diferentes ofertas y opciones del mercado de hosting, así que ese paso nos lo saltamos, simplemente nos quedamos con que ya hemos hecho el estudio de nuestro proyecto, tenemos conciencia de la arquitectura necesaria para correr nuestra aplicación y por lo tanto sabemos que servidor es el que más se aproxima a nuestras necesidades. Una vez seleccionado nos fijamos en las características de dicho servidor e intentamos emularlo en nuestra máquina local, aunque siempre será mejor montarnos un servidor ajeno a nuestra máquina, que corra incluso el mismo sistema operativo. Os aseguro que esto que parece una tontería muy grande os puede quitar grandes dolores de cabeza, cuando os dais cuenta que en local os funciona todo a la perfección y al subirlo a la Red de Redes hay cositas que fallan.

Las opciones son varias, desde instalaros en un ordenador viejo un Linux como servidor, un mysql e instalarle el PHP (cosa que no debería ser muy complicada en la época que corre, pues cambiamos más de ordenador que de calzoncillos), hasta montarnos una máquina virtual que emule del modo más fiel las características del hosting que contratemos en un futuro no muy lejano. Es en esta segunda opción en la que daremos los pasos a seguir, pues quieras que no, no deja de ser más cómodo trabajar en local, aunque ya no sería un servidor Apache corriendo en Windows, que es básicamente lo que se pretende.

Configurar la red de máquina virtual en VirtualBox

Como instalar una máquina virtual es algo que también debería tener su propio post, pero si sabes montártela, aquí te dejamos algunos consejos para terminar de instalar bien tu servidor. Una vez montado deberemos hacer lo siguiente, para que nuestra máquina virtual esté físicamente conectada a nuestra red, de modo que el equipo huésped (Servidor Linux) sea visible desde el anfitrión (Windows 7, por ejemplo) y viceversa. Para ello observamos la siguiente imagen:

blog MySQL VirtualBox configuración red puente

En el paso (1) haremos clic sobre el icono de red de VirtualBox en la misma barra de estado de nuestra máquina virtual y nos aparecerá la ventana que vemos en la imagen. El paso (2) es tan simple como seleccionar en “Conectado a:” la opción “Adaptador Puente”

Como se aprecia en la imagen, con dicha configuración tendremos nuestro Linux como se de una máquina física y real conectada a nuestra red se tratara. Ahora tan solo deberemos comprobar mediante el comando ifconfig en nuestro Linux qué IP nos ha asignado el DHCP o si preferimos, configurar uno estático para así tenerlo siempre localizado, que para esta práctica es lo más interesante, pudiendo darle por ejemplo la IP 192.168.1.100, por ejemplo. Ahora que sabemos que IP tiene nuestro servidor, en el equipo anfitrión (Windows) abrimos la consola (cmd) y mediante el comando ping realizamos una llamada a dicha IP para ver si nos responde. Si es positivo, todo está listo y preparado, ahora tan solo deberemos abrirnos en el equipo anfitrión (Windows) un navegador web y colocar, en mi caso (para el vuestro utilizar la IP de la máquina virtual vuestra) http://192.168.1.100 de este modo se nos debería de abrir la web de bienvenida del servidor Apache o si ya tienes alguna página metida en tu máquina virtual. Ahora ya puedes jugar con estos parámetros, incluso modificar el fichero HOSTS del equipo anfitrión (Windows) para indicarle que la IP de nuestro servidor virtual responde al nombre de servidor.com o el nombre que le queráis dar. Para ello tenéis que abriros el bloc de notas ejecutándolo como administrador en vuestro Windows y después en Archivo -> Abrir buscar c:\Windows\system32\drivers\etc\hosts Ahora añadimos una línea como ésta:

192.168.1.100    servidor.com    # Mi servidor virtual

De tal modo que cada vez que coloquemos en nuestro navegador servidor.com nos abrirá nuestro servidor web virtual. Sencillo, ¿verdad? Bien, pero qué pasa si queremos instalarnos MySQL Workbench en la máquina anfitrión para administrar y gestionar nuestro servidor virtual MySQL. Pues lo más normal es que nos devuelva un error como una casa. Y he de ser sincero, a mí me costó averiguar la solución, pero googleando por ahí al final dí con la clave.

Solución a Error 10061 MySQL

Este es el error que os devolverá MySQL al intentar hacer login en la base de datos. Y es simple, tan solo se trata de otorgar permisos al usuario en cuestión, con el que pretendamos hacer login, para que nuestro servidor permita las conexiones desde una determinada IP. ¿Cómo se hace eso? Pues muy sencillo, podemos utilizar la consola para administrar MySQL o bien instalarnos, si no lo tenemos ya instalado, PHPMyAdmin, que nos facilita y no veas de qué manera la tarea que comentamos a continuación. Una vez tengamos claro como acceder a nuestro servidor MySQL desde la misma máquina virtual para su correcta configuración, en nuestro caso desde PHPMyAdmin (para qué nos vamos a complicar la vida), entramos en Privilegios y desde ahí, en nuestro caso también, añadiremos un nuevo usuario basado en el usuario root tan solo que en la IP del servidor pondremos la IP de la máquina anfitriona (Windows) como se muestra en la imagen.

MySQL Privilegios

Como se puede apreciar, se ha metido la IP desde la cual queremos tener acceso. También debemos cambiar en /etc/mysql/my.cnf una línea con el parámetro bind-address que apunta por defecto a localhost por la IP pública del servidor (192.168.1.100 o la IP que hayáis asignado a vuestro servidor), y luego reiniciamos el MySQL (/etc/init.d/mysql restart), entonces podremos acceder sin problemas desde un cliente MySQL remoto. Ahora probamos nuevamente a conectar desde MySQL Workbench a nuestro Linux virtual y comprobaremos que realmente enganchamos al servidor de la base de datos.

Y hasta aquí puedo leer. Más adelante explicaremos como montar nuestro propio servidor FTP o como trabajar con DreamWeaver y Netbeans sobre servidor virtualizado en nuestra máquina en local.

Esperamos que os sirva de ayuda o incluso os de ese toque divino de ocurrencias inspiradoras para montarlo de un modo interesante y así simular un entorno de desarrollo lo más cercano a la realidad posible. También pedimos disculpas por aquellos que no sepan montar una máquina virtual, instalar un servidor Linux o cualquiera de las demás tareas que hemos dado por sentadas en este pequeñísimo tutorial. Siempre un saludo muy grande y ¡a darle caña!

2 thoughts on “VirtualBox como servidor web de pruebas

  • Al hacer ping de la máquina anfitrión a la MV, no responde: tengo una máquina virtual con server 2003 y una MV con server 2003 también. ¿ que pasos debo seguir para hacer accesible por escritorio remoto a mi maquina virtual ?. Gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *