El ordenador de placa única Raspberry Pi puede co­n­fi­gu­rar­se en tan solo unos pocos pasos de tal manera que puedes llamarlo tu propio servidor web Raspberry pi. Aun cuando su re­n­di­mie­n­to es inferior al de las variantes co­me­r­cia­les 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 di­s­po­ni­bles en la nube. Nuestro tutorial pone a tu alcance la in­fo­r­ma­ción necesaria para co­n­fi­gu­rar 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 co­n­s­cie­n­te de que el hardware tiene ciertas li­mi­ta­cio­nes. El ordenador ofrece peor re­n­di­mie­n­to en co­m­pa­ra­ción con el que puedas obtener en un proveedor web al uso. Para el alo­ja­mie­n­to de páginas web complejas (por ejemplo tiendas online o páginas con co­n­te­ni­dos dinámicos), Raspberry Pi también presenta ciertas li­mi­ta­cio­nes, al igual que para las páginas web que tienen muchos vi­si­ta­n­tes. El escaso ancho de banda de la conexión a Internet supone otro de los ob­s­tácu­los en el uso de Raspberry Pi como servidor web.

Sin embargo, el Raspberry PI web server sí es apto en algunos campos de apli­ca­ción: este se puede emplear como servidor local con conexión a Internet o uti­li­zar­se en una red co­r­po­ra­ti­va. Con él se pueden testear páginas web que estén online o alojar páginas web completas de pequeña en­ve­r­ga­du­ra que tengan un número reducido de visitas. Asimismo, también se puede gestionar una nube propia o co­n­fi­gu­rar programas para la domótica (control de luces, ca­le­fa­c­ción, etc.).

Otra de las ventajas de un Raspberry Pi como web server es la di­s­mi­nu­ción de gastos co­rrie­n­tes que conlleva, ya que este necesita tanto una conexión a Internet como a la ele­c­tri­ci­dad, pero esto no sobrepasa, en general, los 5 W. De este modo, el gasto por un fu­n­cio­na­mie­n­to continuo del servidor web será, prá­c­ti­ca­me­n­te, in­si­g­ni­fi­ca­n­te. Además, los gastos de ad­qui­si­ción de los co­m­po­ne­n­tes re­que­ri­dos son mínimos.

Re­qui­si­tos para convertir a Raspberry Pi en un web server

La in­fo­r­ma­ción expuesta con an­te­rio­ri­dad hace re­fe­re­n­cia a una de las muchas variantes de apli­ca­ción de Raspberry Pi como servidor web. Para ello, no solo es necesario contar con este ordenador de di­me­n­sio­nes 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 (re­co­me­n­da­do) o mediante WLAN
  • su­mi­ni­s­tro de ele­c­tri­ci­dad con cable micro USB

Puesto que un servidor web funciona en modo “headless” (sin pantalla ni di­s­po­si­ti­vos de entrada) y re­pre­se­n­ta la variante con un mayor ahorro de energía, lo ideal sería co­n­fi­gu­rar 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 ope­ra­ti­vos Unix), puedes instalar el servidor web có­mo­da­me­n­te en un ordenador, un sma­r­t­pho­ne o en cualquier otro di­s­po­si­ti­vo y realizar los cambios pe­r­ti­ne­n­tes. Si te decides por la ad­mi­ni­s­tra­ción vía SSH, introduce la dirección IPv4 del Raspberry Pi en tu cliente SSH para co­ne­c­tar­los entre sí. Si no sabes cuál es la dirección IP de tu Raspberry, puedes acceder a ella in­tro­du­cie­n­do el comando hostname -I (o ifconfig) en el terminal. En caso de que utilices el Raspberry Pi sin pantalla y sin di­s­po­si­ti­vos de entrada, puedes encontrar la dirección IP al buscar el router en tu navegador web (no­r­ma­l­me­n­te tecleando "http://192.168.0.1"). Si quieres utilizar el servidor web para una nube privada o para otro tipo de apli­ca­cio­nes que necesitan un espacio de al­ma­ce­na­mie­n­to mayor, será necesario ampliar la capacidad de al­ma­ce­na­mie­n­to. Esto se logra fá­ci­l­me­n­te en Raspberry Pi y se lleva a cabo por medio de una memoria USB o de un disco duro externo.

Crear un acceso pe­r­ma­ne­n­te a un servidor bajo la misma dirección IP

Los se­r­vi­do­res no solo tienen que estar online de forma pe­r­ma­ne­n­te para que los usuarios puedan acceder a ellos en todo momento, sino que también han de estar di­s­po­ni­bles 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 co­n­ti­nua­me­n­te (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 pro­vee­do­res de Internet las facilitan (y si lo hacen, están sujetas a unos costes mensuales adi­cio­na­les).

También existen otras po­si­bi­li­da­des 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 vi­n­cu­lar­lo con un ordenador o con un router. Por medio de un software es­pe­cí­fi­co, 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 co­n­ti­nua­me­n­te bajo el mismo nombre. Otra opción es visitar la página web del fa­bri­ca­n­te de tu router para obtener más in­fo­r­ma­ción acerca de cómo co­n­fi­gu­rar un DNS dinámico en el propio di­s­po­si­ti­vo.

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 si­guie­n­tes elementos: sistema operativo Linux (en este tutorial se hace re­fe­re­n­cia al sistema Raspbian ya presente en el di­s­po­si­ti­vo), 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 ph­p­M­yA­d­min. Inicia sesión en la consola (terminal) de tu Raspberry Pi. Antes de comenzar a co­n­fi­gu­rar el pack de software de LAMP, lo primero que debes hacer es ac­tua­li­zar todos los packs ya in­s­ta­la­dos 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 ex­pli­ca­n­do cada una de las etapas in­te­r­me­dias. En este sentido, no solo se explican algunas cue­s­tio­nes im­po­r­ta­n­tes, sino que también se muestran los ciclos con los que se comprueba la capacidad de fu­n­cio­na­mie­n­to de la co­rre­s­po­n­die­n­te in­s­ta­la­ción.

Co­n­fi­gu­ra­ción de Apache

La in­s­ta­la­ció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 co­m­po­ne­n­tes 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 in­s­ta­la­ción se ha llevado a cabo con éxito, escribe la dirección IP del Raspberry Pi en la barra de di­re­c­cio­nes de tu navegador. Si Apache 2 se ha instalado co­rre­c­ta­me­n­te, aparecerá en el navegador una página pre­de­te­r­mi­na­da con el mensaje “It works!”. Esta página web en formato HTML se encuentra en Raspbian Jessie en el di­re­c­to­rio /var/www/html/index.html y en la versión antigua de Raspbian llamada Wheezy bajo el di­re­c­to­rio /var/www/index.html. La página puede revisarse en el di­re­c­to­rio 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 in­tro­du­ci­do cambios, tendrás la po­si­bi­li­dad de verlos tras volver a cargar la página web en el navegador.

Co­n­fi­gu­rar PHP

Para que el servidor web no solo sea capaz de procesar archivos HTML, CSS o Ja­va­S­cri­pt, 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 si­guie­n­tes co­rre­c­cio­nes en el editor:

<?php
phpinfo();
?>

Si has in­tro­du­ci­do /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 co­rre­s­po­n­die­n­te. Esto tiene lugar cuando PHP se ha instalado en tu Raspberry Pi. 

Co­n­fi­gu­rar 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 de­te­r­mi­nes la co­n­tra­se­ña raíz para MySQL, pero, hecho esto y una vez fi­na­li­za­da la co­n­fi­gu­ra­ción de la base de datos, concluye la in­s­ta­la­ción de manera de­fi­ni­ti­va re­ini­cia­n­do MySQL (comando: sudo/etc/init.d/mysql restart) o el ordenador Raspberry Pi (comando: sudo reboot).

Co­n­fi­gu­rar ph­p­M­yA­d­min

Puedes utilizar ph­p­M­yA­d­min para ad­mi­ni­s­trar MySQL. Con ayuda de este software libre puedes gestionar la base de datos fá­ci­l­me­n­te a través de una interfaz gráfica en el navegador. Para llevar a cabo su in­s­ta­la­ción, ejecuta el siguiente comando:

sudo apt-get install phpmyadmin

En la pantalla re­su­l­ta­n­te se­le­c­cio­na Apache 2 como servidor web. A co­n­ti­nua­ción, se te pregunta si es necesario instalar la base de datos ad­mi­ni­s­tra­ti­va ph­p­M­yA­d­min, a lo que respondes afi­r­ma­ti­va­me­n­te. Ahora debes elegir una co­n­tra­se­ña (que puede ser la misma que para MySQL) y se completa la in­s­ta­la­ción.

El último paso consiste en vincular ph­p­M­yA­d­min con el servidor web Apache. Esto se lleva a cabo con el siguiente comando, sobre el que se puede editar el archivo de co­n­fi­gu­ra­ción apache2.conf con el editor nano:

sudo nano /etc/apache2/apache2.conf

Coloca el cursor al final del archivo de co­n­fi­gu­ra­ción (o presiona re­pe­ti­da­me­n­te la co­m­bi­na­ción de teclas “Ctrl” + “V”) e introduce una nueva línea en el archivo: 

Include /etc/phpmyadmin/apache.conf

Guarda los cambios rea­li­za­dos por medio de la co­m­bi­na­ción de teclas “Ctrl” + “O” y cierra el archivo de co­n­fi­gu­ra­ción con “Ctrl” + “X”. A co­n­ti­nua­ció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 rea­li­za­ción de los pasos an­te­rio­res, no solo se ha podido co­n­fi­gu­rar el servidor web en su totalidad, sino que su base de datos ya puede ad­mi­ni­s­trar­se a través de ph­p­M­yA­d­min en el servidor web. Para ello, introduce la dirección IP de Raspberry Pi en la barra de di­re­c­cio­nes seguida de /ph­p­m­ya­d­min ("http://192.168.X.X/ph­p­m­ya­d­min") y re­gí­s­tra­te en la página de ph­p­M­yA­d­min con el nombre de usuario “root” y con la co­n­tra­se­ña de MySQL pre­via­me­n­te es­ta­ble­ci­da. En cuanto hayas iniciado sesión, podrás incluir conjuntos de datos en ph­p­M­yA­d­min, crear o eliminar bases de datos y tablas, así como utilizar otro tipo de funciones.

Campos de apli­ca­ción del Raspberry web server

Tu servidor web ya está co­n­fi­gu­ra­do y listo para usarse, por lo que ahora tienes la po­si­bi­li­dad 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 di­re­c­ta­me­n­te en el Raspberry Pi bajo los di­re­c­to­rios /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 tra­n­s­fe­ri­r­las po­s­te­rio­r­me­n­te 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 efe­c­tuar­se por medio del archivo de co­n­fi­gu­ra­ción .htaccess. En este caso, es re­co­me­n­da­ble crear una página de error 404 in­di­vi­dual para tu página web o re­di­re­c­cio­nar la página web a otro dominio. Si quieres conocer los 10 mejores trucos para archivos .htaccess, haz clic aquí. La uti­li­za­ción de Raspberry Pi como web server te da la opo­r­tu­ni­dad de crear páginas web de manera sencilla y de aprender a ad­mi­ni­s­trar y probar cómo funciona un servidor web. Junto al alo­ja­mie­n­to 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 mu­l­ti­me­dia y de datos. Asimismo, con el software libre ownCloud también se puede co­n­fi­gu­rar y gestionar en él una nube privada. El programa para el alo­ja­mie­n­to de archivos te permite, entre otros factores, depositar archivos en la nube y acceder a ellos y si­n­cro­ni­zar­los. 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 po­si­bi­li­dad 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á pe­r­ma­ne­n­te­me­n­te conectado a Internet, es probable que tarde o temprano sufra los ataques de personas ma­li­n­te­n­cio­na­das. Por ello, es necesario que cuente con las ac­tua­li­za­cio­nes más recientes y que no te hagas re­s­po­n­sa­ble del alo­ja­mie­n­to web. Es re­co­me­n­da­ble que los datos sensibles, co­n­cre­ta­me­n­te, se alojen en un servidor web solo cuando exista la certeza de los pasos que se han de seguir para ello. 

Ir al menú principal