Ubunlog Damian Amoedo  

LEMP (Nginx, MariaDB y PHP), instalación en Ubuntu 20.04

about LEMP

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.

versión de nginx

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:

instalar certificados y curl

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:

añadir el repositorio para 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:

instalar nginx para lemp

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.

servidor nginx funcionando en el navegador web

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/.

archivos de nginx

Instalar MariaDB

mariadb versión LEMP

El siguiente paso a serguir será instalar el servidor MariaDB utilizando el siguiente comando. Por defecto, Ubuntu 20.04 incluye MariaDB v10.3.

instalación mariadb para LEMP

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.

versión de php para LEMP

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.

instalar php-fpm para LEMP

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:

configuración www.conf PHP

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

configuración hostvirtual prueba LEMP

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:

crear un archivo de prueba para LEMP

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.

archivo hosts local

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:

site local navegador web php info

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.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.