Tutorial Raspberry Pi - Crear servidor Web

Cómo crear un servidor Web casero con Raspberry Pi.

Consigue gratis tu cuenta

Crea una API REST con Node.js y MongoDB

En este curso vas a aprender a crear una API REST con Node.js y MongoDB, además de crear un entorno de desarrollo con Docker y Docker Compose.

Comenzar ahora

webrad

¡Hola a todos! Hoy os explicaré paso a paso cómo crear un servidor Web casero con Raspberry Pi.

Preparando la Raspberry Pi.

Lo primero que debemos hacer es asignarle una IP estática.

sudo nano /etc/network/interfaces

Me imagino que todos sabrán asignarle unaIP estática a la raspberry pero si alguien no lo sabe yo pondré un ejemplo. En mi caso, editaré el eth0, puesto que tengo la Raspberry Pi conectada por Ethernet.

auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1

Donde "address" es la dirección IP de la Raspberry Pi, "netmask" la máscara de nuestra red y "gateway" la IP de la puerta de enlace de nuestro router.

Instalación del servidor Web

Una vez tengamos una IP estática en nuestra Raspberry Pi, ya empezaremos a instalar el servidor Web.

Lo siguiente que haremos será crear el grupo "www-data".  Para ello ejecutaremos los siguientes comandos:

sudo groupadd www-data
sudo usermod -a -G www-data www-data

Actualizaremos los repositorios y los programas de nuestra raspberry.

sudo apt-get update
sudo apt-get upgrade

A partir de aquí empieza la instalación de Apache:

sudo apt-get install apache2

Ahora comprobaremos que todo ha funcionado correctamente abriendo el navegador y, en la barra de direcciones introduciremos la IP de nuestra Raspberry Pi. Debería salirnos un mensaje como este:

 

Ahora instalaremos PHP para poder crear contenido dinámico en nuestra web. Para ello ejecutaremos el siguiente comando:

sudo apt-get install php5

A continuación instalaremos unos paquetes que nos podrían hacer falta en un futuro.

sudo apt-get install libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mhash php5-mysql php5-odbc

Tras esto reiniciamos nuestra Raspberry Pi:

sudo reboot

Una vez que reiniciemos haremos una prueba con PHP.

sudo nano /var/www/info.php

Escribiremos el siguiente código dentro del documento

<?php
      phpinfo();
?>

Abriremos el navegador e introduciremos IPRASPBERRY/info.php (por ejemplo: 192.168.1.9/info.php) o localhost si estamos en la Raspberry Pi. Deberá salir algo como la siguiente imagen:

phpinfo lamp geekytheory

Si sale esta imagen vamos por buen camino. Ahora nos pondremos a instalar MySQL. Durante la instalación nos pedirá datos como la contraseña de MySQL. Coged nota porque luego usaremos estos parámetros para comprobar que funciona MySQL. Para instalar MySQL ejecutaremos el siguiente comando:

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

Reiniciamos de nuevo la Raspberry Pi y, tras reiniciarse abriremos un terminal e iniciamos MySQL.

sudo service mysql start

Ahora comprobaremos que funciona MySQL mediante el siguiente comando:

mysql -u root -p

Podemos dejar el parámetro -p vacio y luego nos preguntará la contraseña o poner la contraseña junto a este parámetro para que no la pida.

Pulsamos CTRL+C para que nos deje seguir trabajando con el terminal.

Ahora instalaremos phpMyAdmin para manejar fácilmente las bases de datos de MySQL. Para ello ejecutaremos el siguiente comando:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Durante la instalación nos preguntará qué tipo de servidor tenemos; marcaremos Apache y continuaremos. Después nos preguntará si queremos configurar una base de datos; le diremos que sí y nos pedira que introduzcamos la contraseña de MySQL y nos pedirá de nuevo que introduzcamos una contraseña para phpMyAdmin. Al finalizar editaremos el siguiente fichero:

sudo nano /etc/php5/apache2/php.ini

Añadiremos lo siguiente. Yo en mi caso lo dejé en la primera línea.

extension=mysql.so

Guardaremos el fichero y a través del navegador introduciremos  http://IPRASPBERRY/phpmyadmin/  . Deberia salir phpmyadmin. El usuario sera root y la contraseña sera la que hayamos elegido anteriormente. Si no llegara a funcionar ejecutaremos estos 2 comandos:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
sudo /etc/init.d/apache2 reload

 Si siguiese sin funcionar toca reiniciar la Raspberry Pi. En caso de que funcione continuamos.

Ahora queremos que nuestro sitio web tenga siempre la misma IP. Yo en mi caso me registré en DnsDynamic para crear un dominio gratuito. Al crearlo nos dirá que está disponible y nos asignará una IP al dominio. Le daremos al botón de añadir y volvemos a nuestra Raspberry Pi. Instalaremos el siguiente programa para que nuestro sitio esté siempre visible. Para ello ejecutaremos el siguiente comando:

sudo apt-get install ddclient

Durante la instalación nos preguntará si queremos ejecutar el cliente cuando establezca una conexión PPP diremos que "NO" porque a continuación nos preguntará si lo queremos ejecutar como demonio; entonces le diremos que "SI" y saldrá una ventana para configurar este servicio. En esta seleccionaremos "Otro" y pulsaremos "Aceptar".

En la siguiente pantalla pondremos el sitio de donde hemos conseguido el dominio gratuito, www.dnsdynamic.org.

A continuación nos preguntará qué protocolo utiliza, nosotros pondremos el protocolo dyndns2.

 

Lo siguiente que nos pedirá es el usuario y contraseña con el que nos registramos en www.dnsdynamic.org. Después nos preguntará qué interfaz de red usará este servicio. Aquí pondremos el eth0 si nuestra Raspberry Pi está conectada al router directamente por cable.

 

Después nos pedirá el dominio que creamos:

 

Por último nos preguntará cada cuanto tiempo realizará las comprobaciones de IP, yo lo dejé en 300 minutos.

Reiniciaremos nuestra Raspberry Pi de nuevo y cuando reinicie iniciaremos Apache, MySQL y comprobaremos que ddclient este ejecutandose. Abriremos nuestro navegador e introduciremos nuestro dominio para comprobar que efectivamente nos muestra nuestro sitio web. En mi caso sigue saliendo la página que tiene por defecto

Si tuviéramos problemas con este servicio y quisiéramos reconfigurarlo, podremos editar el fichero de configuracion en /etc/ddclient.conf o ejecutar el siguiente comando:

sudo dpkg-reconfigure ddclient

A partir de aquí sólo queda implementar medidas de seguridad para que nadie pueda tirar nuestro sitio web y hacer copias de seguridad del sistema operativo y nuestro sitio web por si algun día ocurre algo no perder el tiempo con errores inesperados.

Espero que os haya gustado este tutorial y os hayáis divertido tanto como yo.

SALUDOS

Artículos relacionados

Tutorial Raspberry Pi - 1. El primer encendido

Cómo instalar Linux en la Raspberry Pi y realizar una conexión remota a través de SSH y de VNC.

Arduino + Raspberry Pi - Lectura de datos

En el tutorial de hoy seguimos con la conexión de Arduino y Raspberry Pi. En este artículo, haremos una lectura de varios componentes que habrá conectados a Arduino.


¿Quieres seguir aprendiendo?