Instalar una infraestructura LAMP en tu Raspberry Pi en dos pasos

Este es uno de los capítulos del tutorial La Raspberry Pi. Primera primeros pasos.. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

Con toda seguridad, y con independencia del uso que le estés dando a tu Raspberry Pi, es muy recomendable, casi necesario, diría yo, que montes una infraestructura LAMP en tu pequeño dispositivo. Si no conoces que es LAMP, indicarte que no es mas que un acrónimo de,

  • Linux
  • Apache. Este es el servidor web.
  • MySQL/MariaDB. El gestor de base de datos.
  • PHP/Perl/Python. El lenguaje de programación.

Inicialmente, cuando pensé en como escribir este artículo, pensé en dedicar uno a cada uno de estos servicios. Uno para el servidor web, otro para el gestor de base de datos y otro para PHP. Sin embargo, creo que lo mas sensato es un solo artículo para la infraestructura LAMP, que como he comentado, es algo indispensable.

Realmente, con esta infraestructura no tendremos nada y lo tendremos todo. Me refiero a que, una vez montada, sobre ella, podremos instalar diferentes aplicaciones que no serán de gran utilidad. ¿Por ejemplo? Desde una página web con WordPress, una galería de fotos con Gallery o Piwigo, tu propia nube personal con NextCloud, una wiki con MediaWiki, y otras aplicaciones que iremos viendo en próximos artículos.

Instalar una infraestructura LAMP en tu Raspberry Pi en dos pasos. Portada.

Instalando una infraestructura LAMP en tu Raspberry Pi

Al igual que hemos hecho en otros artículos, vamos a realizar el proceso de instalación de una infraestructura LAMP en la Raspberry Pi paso a paso. Aunque, al igual que anteriormente, también dejaré un script para instalarlo todo de una vez (o casi), sin tener que meternos en todo el detalle de la instalación. De cualquier forma, y al igual que he comentado en otros artículos, recomiendo seguir la instalación, sobre todo si estás interesado en comprender el funcionamiento de GNU/Linux. En este tipo de instalación, siempre surgen temas de asignación de permisos, situación de servicios, etc.

Evidentemente de la infraestructura LAMP, lo que ya tenemos instalado es Linux, y si no siempre, puedes recurrir a los primeros artículos de esta serie.

Como de costumbre y antes de comenzar con el proceso de instalación, actualizaremos nuestra Raspberry y nuestro sistema. Para ello, ejecutaremos las siguientes órdenes,

  • Actualizar la Raspberry Pi. En su caso puede ser necesario reiniciarla.
sudo rpi-update
  • Actualizar el sistema,
sudo apt update
sudo apt upgrade

Instalando el servidor web de la infraestructura LAMP

Lo primero que vamos a instalar es el servidor web. Este nos servirá para infinidad de cosas, y no solo para nuestra infraestructura LAMP. Simplemente con colocar una página web estática en el sitio adecuado lo podremos ver desde nuestra red local. O incluso verlo desde cualquier sitio utilizando nuestra OpenVPN.

Para instalar el servidor web, solo tienes que ejecutar la siguiente orden,

sudo apt install apache2

Una vez completada la instalación, podemos comprobar si todo ha ido correctamente, abriendo tu navegador de internet favorito, Firefox, Chromium, Chrome o el que sea, y escribiendo la dirección IP de tu Raspberry Pi. En mi caso particular,

http://192.168.1.48

Si todo funciona como se espera tienes que ver una página como la que se muestra a continuación,

Instalar una infraestructura LAMP en tu Raspberry Pi en dos pasos. Apache funcionando.

La página web que estamos viendo es /var/www/html/index.html. Antes de continuar, y para facilitar nuestro trabajo, vamos a cambiar el propietario del directorio html y de los archivos, así como sus permisos. Para ello, ejecutaremos las siguientes órdenes,

cd /var/www/
sudo chown -R www-data:www-data html
sudo find html -type d -print -exec chmod 775 {} \;
sudo find html -type f -print -exec chmod 664 {} \;

También añadiremos a nuestro usuario al grupo www-data para que pueda operar sin problemas. Para ello, ejecutaremos la siguiente orden,

usermod -a -G www-data pi

Instalando PHP

El lenguaje de programación PHP es uno de los mas extendidos para el desarrollo de páginas web. La ventaja de utilizar PHP para el desarrollo de páginas web es que nos permite crear páginas web dinámicas, es decir, que se generan cuando un usuario visita la página.

Por defecto Raspbian dispone de PHP versión 5, sin embargo, muchos servicios de hosting ya ofrecen la versión 7, que es mas rápida y eficiente. Así que si vas a realizar una réplica de tu página web en tu Raspberry o simplemente te vas a dedicar a programar páginas web, es conveniente que utilices esta versión. De cualquier forma, si quieres utilizar la 5, ejecuta la siguiente orden,

sudo apt install php5 libapache2-mod-php5

Mientras que si quieres instalar PHP 7, ejecuta las siguientes,

sudo echo "deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi" > /etc/apt/sources.list.d/stretch.list

Añade a /etc/apt/preferences/ el siguiente contenido,

Package: *
Pin: release n=jessie
Pin-Priority: 600

Actualiza de nuevo los paquetes,

sudo apt update
sudo apt upgrade

y comienza con la instalación de PHP 7,

sudo apt install -t stretch -y php7.0 libapache2-mod-php7.0 php7.0-mysql

El último de los paquetes php7.0-mysql lo instalamos para la integración con MariaDB.

Una vez instalado, lo primero que debemos hacer es reiniciar el servidor Apache, para ello, ejecutaremos la siguiente orden,

sudo /etc/init.d/apache2 restart

Para conocer el estado de nuestro servidor web, podemos ejecutar la orden,

sudo /etc/init.d/apache2 status

podemos comprobar el correcto funcionamiento de PHP creando una sencilla página que llamaremos /var/www/html/index.php con el siguiente contenido,

<?php phpinfo(); ?>

De nuevo si vamos en nuestro navegador de internet a http://192.168.1.48/index.php, veremos algo como lo siguiente,

Instalar una infraestructura LAMP en tu Raspberry Pi en dos pasos. PHP funcionando.

No he puesto la captura de toda la página, porque es enorme y tampoco va a aportarte nada nuevo.

Instalando el servidor de bases de datos de la infraestructura LAMP

Respecto al servidor de bases de datos escogeremos MariaDB en lugar de MySQL, que era el estándar hasta hace unos años. En 2008 MySQL fue adquirida por un tercero y cambió su licencia. MariaDB tiene licencia GPL v2.

Sin embargo, no es solo la licencia, lo que hace que te debas decantar por MariaDB. Existen algunas diferencias entre ambos servidores, entre las que se encuentra que MariaDB ha añadido tablas a nivel de sistema para mejorar la optimización de las datos. Por otro lado, MariaDB tiene un rendimiento superior a MySQL.

El único inconveniente que puedes tener utilizando MariaDB es de compatibilidad, a pesar de que ambos servidores presentan un elevado grado de compatibilidad. Es decir, si tu aplicación funciona con MySQL, también debería de funcionar sin ningún problema con MariaDB.

Comentado estos detalles, para instalar MariaDB, solo tienes que ejecutar la siguiente orden en un emulador de terminal,

sudo apt install mariadb-server

Estate atento, porque durante el proceso de instalación te preguntará la contraseña a utilizar. Esta contraseña la necesitarás posteriormente para instalar otras aplicaciones web.

Mediante un script

Si no queremos seguir los pasos indicados aquí, sino tan solo ejecutar un sencillo script que haga esto por nosotros, solo tienes que ejecutar estas dos ordenes,

wget https://raw.githubusercontent.com/atareao/raspberry-scritps/master/install_lamp.sh
sudo bash install_lamp.sh

Ten en cuenta que al final de la instalación te pedirá la contraseña para el gestor de bases de datos MariaDB. Por otro lado, una vez terminado, puedes ir con tu navegador a la dirección http://192.168.1.48/index.php cambiando el IP indicado por el de tu RaspberryPi, y comprobar que el resultado es el correcto.

Conclusiones

Este es un artículo bastante árido, puesto que al final de él, no hemos conseguido poner nada en marcha. Pero, te aseguro que es un importante punto de partida para todas las aplicaciones web que vamos a poner en marcha a partir de ahora, de forma sencilla, y que te serán de gran utilidad. Tendrás lo mejor de Internet sin necesidad de salir de casa.

Sin embargo, no te hagas muchas ilusiones sobre el próximo artículo, no instalaremos todavía ninguna aplicación web interesante, sino que escribiré sobre phpMyAdmin. En el artículo encontrarás como instalar, configurar y utilizar phpMyAdmin. Se trata de una herramienta básica indispensable para trabajar con MariaDB, y necesaria para instalar las nuevas aplicaciones.


Más información,

6 comentarios en “Instalar una infraestructura LAMP en tu Raspberry Pi en dos pasos

  1. en primer lugar, enhorabuena por todos los artículos en general y por los dedicados a la Raspeberry Pi en particular.
    Hay una pequeña errata en la descripción de la instalación de php (v7). Dices que se modifique el contenido de /etc/apt/preferences/, cuando es /etc/apt/preferences.d/. Deberías añadir que hay que crear un fichero en ese directorio (el nombre creo que da igual) con el contenido que indicas a continuación.
    De nuevo, enhorabuena por los contenidos.

    1. de pronto podrias ayudarme?, como puedo cargar datos desde un scrip en python2.7 hacia el servidor de apache2, osea no se como iria la estructura en el scrip, si podrias ayudarme muchas gracias

  2. Muy buenas, a la hora de instalar el mariadb, me sale el error que abajo adjunto.

    Alguna solucion para poder continuar con la instalacion?

    Un saludo-

    Configurando mariadb-server-10.1 (10.1.23-9+deb9u1) …
    dpkg: error al procesar el paquete mariadb-server-10.1 (–configure):
    el subproceso instalado el script post-installation devolvió el código de salida de error 1
    dpkg: problemas de dependencias impiden la configuración de mariadb-server:
    mariadb-server depende de mariadb-server-10.1 (>= 10.1.23-9+deb9u1); sin embargo:
    El paquete `mariadb-server-10.1′ no está configurado todavía.

    dpkg: error al procesar el paquete mariadb-server (–configure):
    problemas de dependencias – se deja sin configurar
    Se encontraron errores al procesar:
    mariadb-server-10.1
    mariadb-server
    E: Sub-process /usr/bin/dpkg returned an error code (1)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *