LEMP (Nginx, MariaDB y PHP), instalación en Ubuntu 20.04
En el siguiente artículo vamos a echar un vistazo a cómo podemos instalar LEMP (Nginx, MariaDB y PHP) en Ubuntu 20.04. Esta pila de software es muy utilizada para alojar sitios web / blogs que van desde los pequeños a los más grandes. Si eres de los que prefiere utilizar el servidor Apache para estas tareas, quizás te interese echar un vistazo a LAMP.
La pila de software LEMP es un grupo de elementos de software que puede utilizarse para ofrecer páginas web y aplicaciones web dinámicas. Este acrónimo describe un sistema operativo Linux, con un servidor web Nginx. Los datos del backend se almacenan con MariaDB y el procesamiento dinámico se gestiona a través de PHP. En las siguiente líneas veremos cómo instalar en local todo esto, utilizando un equipo con Ubuntu 20.04.
Instalación de la pila de software LEMP en Ubuntu 20.04
En el momento de escribir estas líneas, si se siguen las instrucciones que se van a ver a continuación, conseguiremos instalar los paquetes EMP (Nginx v1.19, PHP v7.4, MariaDB v10.3) en Ubuntu 20.04.
Instalar Nginx desde repositorio
Nginx proporciona un repositorio para el sistema operativo Ubuntu. El repositorio oficial de Nginx incluye la versión v1.19.
Para empezar a instalar Nginx desde el repositorio vamos a abrir una terminal (Ctrl+Alt+T) y actualizar el listado de software disponible con el comando:
sudo apt update
Lo siguiente que haremos será instalar los algunos paquetes:
sudo apt install curl gnupg2 ca-certificates lsb-release
A continuación, en la misma terminal vamos a añadir la key necesaria y el repositorio para poder instalar Nginx:
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add - echo "deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu focal nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
Una vez añadido correctamente el repositorio, ya podemos proceder a la instalación del paquete Nginx con los comandos:
sudo apt update; sudo apt install nginx
Terminada la instalación, vamos a iniciar el servicio Nginx con el comando:
sudo systemctl start nginx
Una vez arrancado el servidor, ya podemos abrir un navegador web y visitar la dirección IP de nuestro servidor. En este caso como lo estoy haciendo en local, será la IP del equipo en el que lo acabo de instalar. Se debería ver la página predeterminada de Nginx, y con ello confirmaremos que el servidor se ha instalado y funciona correctamente.
La raíz de documentos predeterminada de Nginx en Ubuntu 20.04 la encontraremos en la carpeta /usr/share/nginx/html y sus archivos de configuración en /etc/nginx/.
Instalar MariaDB
El siguiente paso a serguir será instalar el servidor MariaDB utilizando el siguiente comando. Por defecto, Ubuntu 20.04 incluye MariaDB v10.3.
sudo apt install mariadb-server mariadb-client
A continuación, tendremos que configurar la contraseña de root y asegurar la instancia de MariaDB utilizando el comando mysql_secure_installation. A todas las preguntas que nos haga, no habrá más que responder ‘y‘. Aun que siempre es bueno leerlas.
sudo mysql_secure_installation
Instalar PHP-FPM
Llegado a este punto vamos a instalar PHP-FPM (PHP-FastCGI Process Manager) para mostrar contenido dinámico escrito en PHP.
Para instalar PHP-FPM lo que haremos será utilizar el siguiente comando. Por defecto, a día de hoy Ubuntu 20.04 incluye PHP-FPM v7.4.
sudo apt install php-fpm php-mysql php-cli
PHP-FPM escucha en el socket /run/php/php7.4-fpm.sock por defecto. Para hacer que utilice la conexión TCP, vamos a editar el siguiente archivo:
sudo vim /etc/php/7.4/fpm/pool.d/www.conf
Una vez en el archivo, vamos a cambiar el parámetro de escucha:
listen = /run/php/php7.4-fpm.sock
Por lo siguiente:
listen = 127.0.0.1:9000
Una vez realizados los cambios, solo nos queda guardar el archivo y cerrar. Lo siguiente que haremos será reiniciar PHP-FPM con el comando:
sudo systemctl restart php7.4-fpm.service
Probando LEMP
Como prueba, vamos a crear un host virtual basado en nombres en el servidor Nginx para probar nuestra instalación de la pila LEMP. Los siguientes nombres y direcciones solo son un ejemplo, que cada usuario los adapte a sus necesidades.
- Nombre de dominio: site.entreunosyceros.local
- Raíz del documento: /www/site.entreunosyceros.local
Comenzaremos creando un archivo de configuración de host virtual para nuestro dominio en el directorio /etc/nginx/conf.d/:
sudo vim /etc/nginx/conf.d/site.entreunosyceros.local.conf
Dentro del archivo, añadiremos el siguiente contenido:
server { server_name site.entreunosyceros.local; root /www/site.entreunosyceros.local; location / { index index.html index.htm index.php; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Una vez pegado el contenido, guardamos y cerramos. Ahora vamos a crear el directorio raíz para colocar los archivos PHP:
sudo mkdir -p /www/site.entreunosyceros.local
Lo siguiente será cambiar la propiedad del directorio raíz:
sudo chown -R www-data:www-data /www/site.entreunosyceros.local/
Para probar el soporte de PHP-FPM, colocaremos un archivo .php en la raíz del documento del host virtual con el comando:
echo "<?php phpinfo(); ?>" | sudo tee /www/site.entreunosyceros.local/index.php
Continuamos reiniciando Nginx:
sudo systemctl restart nginx
Ahora vamos a crear una entrada de host para el dominio (en este ejemplo site.entreunosyceros.local) en el archivo /etc/hosts, en caso de que nuestro entorno no tenga un servidor DNS para la resolución de nombres.
sudo vim /etc/hosts
Dentro del archivo, vamos a añadir una entrada de host como se muestra a continuación.
10.0.2.15 site.entreunosyceros.local site
Guardamos los cambios y cerramos el archivo. Lo siguiente que haremos será abrir el navegador web y escribir el nombre de utilizado en la barra de direcciones:
En la anterior captura, se puede ver en la linea API del servidor que PHP funciona en nuestro servidor a través de FPM/FastCGI.
Y con esto podemos dar por concluida la instalación local de LEMP en Ubuntu 20.04.