Cómo crear un Servidor Web con Raspberry Pi

El ordenador de placa única Raspberry Pi puede configurarse en tan solo unos pocos pasos de tal manera que puedes llamarlo tu propio servidor web Raspberry pi. Aun cuando su rendimiento es inferior al de las variantes comerciales que se ofrecen en el mercado, usar Raspberry Pi como web server privado es muy útil en algunos ámbitos, como cuando quieres analizar y alojar tu página web en un entorno de prueba o gestionar tus archivos por cuenta propia y hacer que estos estén disponibles en la nube. Nuestro tutorial pone a tu alcance la información necesaria para configurar tu propio servidor web en este pequeño ordenador por medio de un pack de software LAMP gratuito.

¿Cuál es la finalidad de Raspberry Pi como servidor web?

Si quieres utilizar Raspberry Pi como un web server, debes ser consciente de que el hardware tiene ciertas limitaciones. El ordenador ofrece peor rendimiento en comparación con el que puedas obtener en un proveedor web al uso. Para el alojamiento de páginas web complejas (por ejemplo tiendas online o páginas con contenidos dinámicos), Raspberry Pi también presenta ciertas limitaciones, al igual que para las páginas web que tienen muchos visitantes. El escaso ancho de banda de la conexión a Internet supone otro de los obstáculos en el uso de Raspberry Pi como servidor web.

Sin embargo, el Raspberry PI web server sí es apto en algunos campos de aplicación: este se puede emplear como servidor local con conexión a Internet o utilizarse en una red corporativa. Con él se pueden testear páginas web que estén online o alojar páginas web completas de pequeña envergadura que tengan un número reducido de visitas. Asimismo, también se puede gestionar una nube propia o configurar programas para la domótica (control de luces, calefacción, etc.).

Otra de las ventajas de un Raspberry Pi como web server es la disminución de gastos corrientes que conlleva, ya que este necesita tanto una conexión a Internet como a la electricidad, pero esto no sobrepasa, en general, los 5 W. De este modo, el gasto por un funcionamiento continuo del servidor web será, prácticamente, insignificante. Además, los gastos de adquisición de los componentes requeridos son mínimos.

Requisitos para convertir a Raspberry Pi en un web server

La información expuesta con anterioridad hace referencia a una de las muchas variantes de aplicación de Raspberry Pi como servidor web. Para ello, no solo es necesario contar con este ordenador de dimensiones reducidas, sino también con:

  • una tarjeta SD con el sistema operativo Raspbian
  • conexión a Internet, bien por medio de un cable de red (recomendado) o mediante WLAN
  • suministro de electricidad con cable micro USB

Puesto que un servidor web funciona en modo “headless” (sin pantalla ni dispositivos de entrada) y representa la variante con un mayor ahorro de energía, lo ideal sería configurar un acceso remoto al servidor por medio del protocolo SSH: con ayuda de un cliente SSH (como PuTTY, WinSCP para Windows o con OpenSSH para sistemas operativos Unix), puedes instalar el servidor web cómodamente en un ordenador, un smartphone o en cualquier otro dispositivo y realizar los cambios pertinentes. Si te decides por la administración vía SSH, introduce la dirección IPv4 del Raspberry Pi en tu cliente SSH para conectarlos entre sí. Si no sabes cuál es la dirección IP de tu Raspberry, puedes acceder a ella introduciendo el comando hostname -I (o ifconfig) en el terminal. En caso de que utilices el Raspberry Pi sin pantalla y sin dispositivos de entrada, puedes encontrar la dirección IP al buscar el router en tu navegador web (normalmente tecleando "http://192.168.0.1").

Si quieres utilizar el servidor web para una nube privada o para otro tipo de aplicaciones que necesitan un espacio de almacenamiento mayor, será necesario ampliar la capacidad de almacenamiento. Esto se logra fácilmente en Raspberry Pi y se lleva a cabo por medio de una memoria USB o de un disco duro externo.

Crear un acceso permanente a un servidor bajo la misma dirección IP

Los servidores no solo tienen que estar online de forma permanente para que los usuarios puedan acceder a ellos en todo momento, sino que también han de estar disponibles bajo la misma dirección IP. Por norma general, la conexión a Internet de un servidor doméstico está provista de una única dirección IP dinámica. Esta varía continuamente (cada 24 horas) e impide que se pueda acceder siempre al servidor desde la misma dirección IP. Una dirección IP estática serviría de ayuda en este caso, aunque no todos los proveedores de Internet las facilitan (y si lo hacen, están sujetas a unos costes mensuales adicionales).

También existen otras posibilidades para alojar un servidor en la misma dirección, por ejemplo, por medio de DNS dinámicos (DDNS), que pueden ser tanto gratuitos como de pago. En este caso, se tiene que registrar un nombre de dominio y vincularlo con un ordenador o con un router. Por medio de un software específico, se le asigna la dirección IP actual de tu acceso a Internet a un nombre de dominio y, por medio de este, el servidor permanece accesible continuamente bajo el mismo nombre. Otra opción es visitar la página web del fabricante de tu router para obtener más información acerca de cómo configurar un DNS dinámico en el propio dispositivo.

Cómo crear un servidor web Raspberry Pi con LAMP

Con el siguiente tutorial puedes crear un servidor web Raspberry Pi con LAMP stack. LAMP es el acrónimo para un pack de software formado por los siguientes elementos: sistema operativo Linux (en este tutorial se hace referencia al sistema Raspbian ya presente en el dispositivo), un servidor web Apache, una base de datos MySQL y el lenguaje de scripts PHP. Además del pack de LAMP, también se instala phpMyAdmin.

Inicia sesión en la consola (terminal) de tu Raspberry Pi. Antes de comenzar a configurar el pack de software de LAMP, lo primero que debes hacer es actualizar todos los packs ya instalados por medio de estos dos comandos:

sudo apt-get update
sudo apt-get upgrade

Ahora puedes comenzar a instalar cada uno de los elementos de LAMP. El tutorial te guía por un proceso dividido en fases marcando y explicando cada una de las etapas intermedias. En este sentido, no solo se explican algunas cuestiones importantes, sino que también se muestran los ciclos con los que se comprueba la capacidad de funcionamiento de la correspondiente instalación.

Configuración de Apache

La instalación del servidor HTTP Apache Servers se realiza de manera rápida. Esta se lleva a cabo con un único comando y lo mismo se aplica para los otros tres componentes LAMP del servidor web Raspberry Pi. Para el Apache 2 introduce el siguiente comando en el terminal:

sudo apt-get install apache2 

Para comprobar si la instalación se ha llevado a cabo con éxito, escribe la dirección IP del Raspberry Pi en la barra de direcciones de tu navegador. Si Apache 2 se ha instalado correctamente, aparecerá en el navegador una página predeterminada con el mensaje “It works!”. Esta página web en formato HTML se encuentra en Raspbian Jessie en el directorio /var/www/html/index.html y en la versión antigua de Raspbian llamada Wheezy bajo el directorio /var/www/index.html. La página puede revisarse en el directorio y en él pueden incluirse otros tipos de páginas web:

sudo nano /var/www/index.html

o

sudo nano /var/www/html/index.html

Si has introducido cambios, tendrás la posibilidad de verlos tras volver a cargar la página web en el navegador.

Configurar PHP

Para que el servidor web no solo sea capaz de procesar archivos HTML, CSS o JavaScript, sino también PHP, instala PHP5:

sudo apt-get install php5 libapache2-mod-php5

Ahora ya puedes generar un archivo PHP bajo /var/www. A modo de prueba, instala el archivo phpinfo.php:

sudo nano phpinfo.php

Haz las siguientes correcciones en el editor:

<?php
phpinfo();
?>

Si has introducido /infophp.php para obtener la dirección IP de Raspberry Pi en el navegador ("http://192.168.X.X/phpinfo.php"), debería aparecer la página correspondiente. Esto tiene lugar cuando PHP se ha instalado en tu Raspberry Pi. 

Configurar MySQL

Puedes usar MySQL para crear la base de datos del servidor web. Con el comando

sudo apt-get install php5-mysql mysql-server mysql-client

puedes instalar todo lo necesario para ello. Se te pedirá que determines la contraseña raíz para MySQL, pero, hecho esto y una vez finalizada la configuración de la base de datos, concluye la instalación de manera definitiva reiniciando MySQL (comando: sudo/etc/init.d/mysql restart) o el ordenador Raspberry Pi (comando: sudo reboot).

Configurar phpMyAdmin

Puedes utilizar phpMyAdmin para administrar MySQL. Con ayuda de este software libre puedes gestionar la base de datos fácilmente a través de una interfaz gráfica en el navegador. Para llevar a cabo su instalación, ejecuta el siguiente comando:

sudo apt-get install phpmyadmin

En la pantalla resultante selecciona Apache 2 como servidor web. A continuación, se te pregunta si es necesario instalar la base de datos administrativa phpMyAdmin, a lo que respondes afirmativamente. Ahora debes elegir una contraseña (que puede ser la misma que para MySQL) y se completa la instalación.

El último paso consiste en vincular phpMyAdmin con el servidor web Apache. Esto se lleva a cabo con el siguiente comando, sobre el que se puede editar el archivo de configuración apache2.conf con el editor nano:

sudo nano /etc/apache2/apache2.conf

Coloca el cursor al final del archivo de configuración (o presiona repetidamente la combinación de teclas “Ctrl” + “V”) e introduce una nueva línea en el archivo: 

Include /etc/phpmyadmin/apache.conf

Guarda los cambios realizados por medio de la combinación de teclas “Ctrl” + “O” y cierra el archivo de configuración con “Ctrl” + “X”. A continuación, actualiza el servidor web Apache por medio de la inclusión de un nuevo comando en la consola: 

/etc/init.d/apache2 restart

Tras la realización de los pasos anteriores, no solo se ha podido configurar el servidor web en su totalidad, sino que su base de datos ya puede administrarse a través de phpMyAdmin en el servidor web. Para ello, introduce la dirección IP de Raspberry Pi en la barra de direcciones seguida de /phpmyadmin ("http://192.168.X.X/phpmyadmin") y regístrate en la página de phpMyAdmin con el nombre de usuario “root” y con la contraseña de MySQL previamente establecida. En cuanto hayas iniciado sesión, podrás incluir conjuntos de datos en phpMyAdmin, crear o eliminar bases de datos y tablas, así como utilizar otro tipo de funciones.

Campos de aplicación del Raspberry web server

Tu servidor web ya está configurado y listo para usarse, por lo que ahora tienes la posibilidad de crear y alojar una página web, equipando a tu servidor con páginas HTML y PHP. Puedes colocar cada una de las páginas directamente en el Raspberry Pi bajo los directorios /var/www (Raspbian Wheezy) o /var/www/html (Raspbian Jessie). Otra opción es elaborar las páginas en un ordenador externo con un editor web de tu elección y transferirlas posteriormente al servidor web por medio de un software cliente SFTP, lo que se consigue haciendo uso de programas como FileZilla, WinSCP, PuTTY u OpenSSH.

Los ajustes del servidor web Apache pueden efectuarse por medio del archivo de configuración .htaccess. En este caso, es recomendable crear una página de error 404 individual para tu página web o redireccionar la página web a otro dominio. Si quieres conocer los 10 mejores trucos para archivos .htaccess, haz clic aquí. La utilización de Raspberry Pi como web server te da la oportunidad de crear páginas web de manera sencilla y de aprender a administrar y probar cómo funciona un servidor web.

Junto al alojamiento de páginas web, el servidor también es apto para muchos otros proyectos. De esta manera, también es posible utilizar el servidor web del Raspberry Pi como servidor privado multimedia y de datos. Asimismo, con el software libre ownCloud también se puede configurar y gestionar en él una nube privada. El programa para el alojamiento de archivos te permite, entre otros factores, depositar archivos en la nube y acceder a ellos y sincronizarlos. La lista de proyectos que se pueden llevar a cabo con un Raspberry Pi web server es amplia y, si cuentas con tu propio servidor web, tienes a tu alcance la posibilidad de realizar tu propio proyecto.

Seguridad del servidor web

La seguridad del servidor web es un aspecto del que no te puedes olvidar. En especial, cuando un servidor está permanentemente conectado a Internet, es probable que tarde o temprano sufra los ataques de personas malintencionadas. Por ello, es necesario que cuente con las actualizaciones más recientes y que no te hagas responsable del alojamiento web. Es recomendable que los datos sensibles, concretamente, se alojen en un servidor web solo cuando exista la certeza de los pasos que se han de seguir para ello.