Tutorial Raspberry Pi - Crear servidor Web
¡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:
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