Servidor web portátil

Que entiendo por servidor web portátil

Entendamos como instalación y configuración web, a los servicios conocidos para hacer de nuestro sistema un servidor web. Conocidos para muchos como «Lampp» o «Xampp», Apache, mysql, y todo eso…
Instalar un servidor web en nuestro sistema de escritorio es algo fácil, pero tiene sus pros y sus contras.

Es lo que hacemos muchos por inercia.
Me instalo un linux mint, que bonito, me lo configuro todo a mi gusto.
Me hago un aténtico tuneo, y luego instalo todos los servicios para el servidor web.
Apache, sus respectivos sites, mysql, phpmyadmin, subirs las bases de datos…
….que si directivas de apache, que si activar mods, git, etc..
Y me pego un currazo padre y dentro de 2 meses empiezo a tener problemas por culpa de un mal upgrade, y decido reinstalar.
Cuando lo has hecho más de una docena de veces te resientes como ser humano.

Una solución tan buena como sensata es, usar tu desktop como tal, y delegar tu entorno web externamente.
Si puedo tener toda la instalación del servidor web en otro dispositivo externo, le puedo llamar servidor web portátil.
O servidor web externo, lo que más nos guste.

Formas de servidor web portatil

Según las necesidades o los pros que nos ofrezca cada versión:

  • En la nube. Y controlamos su contenido a través de ftp/sftp/ssh, o por control de versiones como git.
  • En un servidor real. Puede ser un pc, una rasperry, y aplicamos lo anterior contra este servidor.
  • Un disco duro donde los datos externalizados será usado por una máquina virtual.

Yo voy a usar el último, me resulta económico, fiable, sencillo, y realmente portátil.
Mi propósito personal de externalizar el servidor web a modo de servicio, es poder usarlo entre varios ordenadores.
Mi caso es que mantengo varias webs y programo en php.
Para programar, git es perfecto, para actualizar cms no tanto.
Para poder trabajar localmente, necesito una instalación y configuración del servidor web en mi linux local.
Además de las incesables reinstalaciones, alguna web necesita condiciones especiales, lo que agraba más el tiempo requerido.

Crear una servidor portátil en una máquina virtual

Ventajas de un servidor web portátil en virtualbox

  • Puedo instalar cualquier sistema operativo.
    Si quiero tener como escritorio windows o macos, y como servidor web un debian, es la solución perfecta.
    Segmentación pura y dura, tu entorno local sin instalar apache, y tu máquina virtual en su propio sistema.
  • Puedo crear varios entornos sin riesgos ni conflictos.
    Si quiero tener varios servidores con características distintas, versiones de php, con o sin nginx, etc.
    Es la solución perfecta, puedo tener tantos servidores como me apetezca.
    Por ejemplo, tengo webs que requieren php5, y otras necesitan php7.
    Simplemente me creo 2 servidores, para cada respectiva versión. Y cada web convivirá en el entorno que desea, como pez en el agua.
  • Backups rápido y simplificado.
    Simplemente buscas el fichero del disco virtual, y lo copias donde te de la gana.
    El disco copiado, lo es todo, el servidor con todos sus servicios y datos.
  • Cuando reinstale mi sistema operativo, el servidor web me estará esperando como máquina integra.
    Sí, reinstalo todo, instalo virtualbox, rescato la máquina virtual, y a correr…
    Aunque creas que no, te ahorras un día de marear la perdiz.
  • Me quedo sólo en casa y decido irme a un parque o merendero. Con mi portatil y el disco virtual en un disco duro, y a currar.
    Estaré trabajando al aire libre con los pajarillos, con el mismo entorno que el de la oficina.
    Y sin necesidad de conexión a internet.
    Y cuando vuelvo a casa conecto el disco externo a mi Pc de sobremesa y continuo el mismo trabajo.

Herramientas necesarias para crear un servidor web portátil en un disco externo

  • Tu sistema operativo orientado a tus necesidades como escritorio preferido. Mac, Windows, Chakra, OpenSuse…
  • VirtualBox. Hay uno para cada sistema operativo. También hay otros virtualizadores alternativos.
  • Un disco duro externo (preferiblemente SSD)
  • Una caja para conectar tu disco duro a Usb (Preferiblemente Usb3)

He realizado mi mini compra en Amazon.

Disco duro para el servidor web portatil

73€ en Amazon premium.
Lo podeis comprar aquí -> http://amzn.to/2phhhaI

Disco duro SSD para mi servidor web portatil con un Crucial MX500

Caja para el disco duro

Me ha costado 12,99€ en Amazon (el link donde lo compré ya no existe)
Caja aluminio disco sata3 para mi servidor web portátil

Virtual Box para alojar mi servidor web portátil

Este es un paso necesario donde no voy a hacer un howto explícito, porque a eso ya se dedican muchos otros.
Creedme, no es perrería, hay más de 100 webs explicando como se crea una máquina vitual con virtualbox.
Único a tener en cuenta, que la tarjeta de red la configuraremos como red puente.

Este es mi escritorio actual en mi portatil, con virtualbox, y 2 servidores.
Los servidores son ubuntu14 con php5, y ubuntu16 con php7. (Ambos sin escritorios)

servidor web portatill con virtualboxInteractuar con mi servidor web portatil

Vale, hasta aquí todo claro para quien más o menos sabe y ha instalado un servidor web.
Tenemos una máquina virtual con el servidor y todos sus servicios y el respectivo contenido html y bases de datos.

Tenemos varias necesidades de interactuar con el servidor

  1. Necesitamos «atacar» a carpetas y archivos, con nuestro IDE o editor de texto.
  2. Poder ejercer control de versiones, con subversion o git.
  3. Abrir páginas web o el mismísimo phpmyadmin.

Osea, estamos buscando las mismas necesidades como si el servicio estuviese en nuestro entorno local.

Interactuar con la estructura de ficheros y directorios

Las combinaciones desktop VS server pueden ser muchas.
Yo voy a partir de mi situación real, donde mi desktop es un linux (Chakra OS) y mi servidor web portatil un Ubuntu 14.

Interacción con el sistema de ficheros usando NFS

Nfs es una red nativa de linux y para linux.
Puedes mapear un disco remoto, y tratarlo como un disco local.

Nfs en el servidor

Así que ahora instalamos nfs en el servidor virtual.
En el caso de ubuntu/debian, se instala así:

#sudo apt-get install nfs-kernel-server nfs-common

Tras la instalación, modificamos /etc/exports.
Está documentadísimo en la web.
Pero si no necesitas profundizar, es algo similar al fstab.
Lo que hace exports es declarar desde el servidor que rutas permites mapear desde los clientes.
En este caso como servidor web portátil, empezamos por declarar al /var/www

nfs etc exports

Después de configurar exports, hacemos:

#sudo exportfs -rav
#sudo service nfs-kernel-server start
Nfs en el cliente

Ahora, en todos nuestros sistemas operativos de escritorio, donde queremos conectar con nuestro servidor web portátil. Instalamos:

#sudo apt-get install nfs-kernel-server

Probamos a mapear la ruta de nuestro servidor:

Siendo el nombre de mi servidor web portatil ‘webserver5’, lo mapeo así:

#sudo mount -t nfs webserver5:/var/www /_NFS

El texto rojo es el servidor, y el texto azul es mi ruta local donde mapeo el disco externo.

En mi consola aparece así, donde ya adelanto también la inserción del mapeo en mi ‘fstab’:

mapear nfs servidor web portatilEl fstab es para introducir ya el mapeo al disco.
Si arrancamos con el disco conectado, se montará sólo.
Si lo hacemos sin el disco conectado, no pasará nada.

Y si se conecta el disco al puerto usb de nuestro ordenador o portatil cuando este ya está arrancado, simplemente en una consola hacemos:

#sudo mount -a

Este comando monta todo lo que encuentre conectado físicamente en ese momento.

Ya tenemos la interacción con nuestro /var/www.
Así que ya podemos editar el contenido, y usar programitas de control de versión como smartgit.

Interacción con nuestro servidor web portatil mediante el navegador

Al igual que cuando nuestro servidor web lo instalamos como servicio local, necesitamos crear sitios de apache (apache sites) y dirigirnos a estos con nombres de alias o de dominio.

¿Hay una solución mejor a este servidor web portatil?

Sí.
Podemos usar docker, que virtualiza software y entornos sin necesidad de virtualizar sistemas operativos.
Podemos seguir trabajando con el disco externo usando docker.
Cada vez que vamos a una maquina que no ha usado un entorno en concreto, tendremos que crear la imagen y contenedores del mismo. (Esto lo hace docker automáticamente)

Los Docker compose que están bien hechos, mapea en carpetas los datos volátiles.
Así que en cualquier máquina dispondremos de los entornos virtualizados, y seguimos trabajando con los datos necesarios (base de datos, fotos, plugins, etc) sin perder cambios al cambiar de ordenador.

Si te da curiosidad, aquí lo explico.
Docker y Docker compose

Acerca de Pedro Reina

Más de 15 años de experiencia en programación Php, python, Mysql, Hml, css, y algunos frameworks. Webmaster aprendiendo SEO. Entusiasta de la informática y la electrónica, pequeño emprendedor y fabricante de ideas.

Deja una respuesta