Cómo instalar LEMP en Debian 10 Buster

Vamos a ver en esta entrada cómo instalar LEMP en Debian 10 Buster paso a paso, la pila formada por el servicio web Nginx con PHP y un motor de bases de datos MariaDB/MySQL, de modo que al final de este tutorial tendrás todos estos elementos conectados y funcionando.

Antes de instalar LEMP en Debian 10 Buster

Para poder seguir esta guía de instalación LEMP en Debian 10 Buster deberías partir de unos requisitos mínimos:

  • Un servidor Debian 10 Buster actualizado.
  • Acceso a consola como root o un usuario con permisos de sudo.
  • Conexión a Internet.

Es casi seguro que si estás leyendo esto, ya cumples los requerimientos, así que puedes ir abriendo una terminal de consola y empezamos.

Cómo instalar LEMP en Debian 10 Buster

Para instalar LEMP en Debian 10 Buster disponemos de todos los componentes en los repositorios oficiales de la distribución. Por tanto, la primera acción es actualizar la información de las distintas listas de paquetes:

~$ sudo apt update

Es buena idea actualizar los paquetes instalados cuando de van a instalar muchos paquetes:

~$ sudo apt upgrade -y

Hecho esto, instalaremos de una vez todos los paquetes necesarios para montar la pila LEMP con apt:

~$ sudo apt install -y php-fpm php-mysql nginx mariadb-server

Después de descargar es instalar estos paquetes y todas sus dependencias se crearán tres nuevos servicios en nuestro sistema Debian 10, los servicios nginx.service, php7.3-fpm.service y mariadb.service. También puedes usar los nombres cortos como nginx, php7.3-fpm y mariadb.

Los tres servicios de la pila LEMP quedan en ejecución tras su instalación, y también habilitados para iniciar automáticamente con cada arranque de Debian 10. Puedes comprobar el estado de los servicios en cualquier momento con el comando systemctl status nginx php7.3-fpm mariadb:

como instalar lemp en debian 10 buster

Configurar UFW para la pila LEMP

En caso de que tengas instalado este firewall en tu sistema Debian 10 Buster y quieras acceder desde otros sistemas en red, deberás abrir algunos servicios de tu pila LEMP.

Obviamente debes abrir el puerto HTTP:

~$ sudo ufw allow http

Si además vas a ofrecer conexiones seguras, también debes abrir el puerto HTTPS:

~$ sudo ufw allow https

Finalmente, si por algún motivo desearas conectar remotamente con el servicio de base de datos, deberías también abrir el puerto correspondiente:

~$ sudo ufw allow mysql

Probando el servicio web

Con el firewall configurado (en caso de ser necesario) y el servidor web funcionando, podemos usar un navegador para probar el servicio, indicando como URL la dirección IP o dominio del servidor Debian 10:

instalar lemp en debian 10 buster

Ya sólo nos faltan unos toques para terminar de dejar el entorno LEMP definitivamente operativo en nuestro sistema Debian 10.

Cómo configurar LEMP en Debian 10 Buster

Configuración de MariaDB

Por defecto la instalación del servicio de bases de datos no incorpora usuarios anónimos ni bases de pruebas, lo que es bastante seguro.

Únicamente hay que tener en cuenta que el usuario root accede sin contraseña, pero sólo usando el cliente mysql con usuarios de Debian 10 como root o usuarios con permisos de sudo:

~$ sudo mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 49
Server version: 10.3.17-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Esto se debe a que el usuario root de MariaDB está usando el plugin de autenticación unix_socket.

Configuración de PHP

Para configurar PHP editaremos su archivo principal, php.ini:

~$ sudo nano /etc/php/7.3/fpm/php.ini

Es importante configurar la zona horaria para las aplicaciones de PHP, lo que se controla desde la variable date.timezone:

...
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
...

Está desactivada por defecto, así que la activaremos y le asignaremos un valor:

date.timezone = Europe/Madrid

En http://php.net/date.timezone encontrarás información sobre los valores posibles si no conoces los de tu zona horaria.

Si estás montando este entorno LEMP para desarrollo, querrás que PHP imprima mensajes de error en el navegador en caso de fallos. Si es así busca estas directivas:

...
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
...
display_errors = Off
...
display_startup_errors = Off
...

Y asígnales estos valores:

...
error_reporting = E_ALL
...
display_errors = On
...
display_startup_errors = On
...

Después de hacer cualquier cambio en este archivo, hay que recargar la configuración del servicio php7.3-fpm para aplicar los cambios:

~$ sudo systemctl reload php7.3-fpm

Configuración de Nginx

Aunque Nginx funciona correctamente no está integrado con el servicio de PHP. Editaremos el servidor virtual por defecto, el que se encarga de la página web por defecto del sistema que acabamos de ver, y activaremos la conexión con el servicio PHP.

Para ello editaremos el archivo de configuración de este servidor virtual por defecto:

~$ sudo nano /etc/nginx/sites-available/default

En el bloque server encontraremos una directiva index que configura los archivos índice:

...
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;
...

Tal y como indica el comentario, debemos añadir index.php a la lista, ya que es el típico archivo índice de las aplicaciones PHP:

...
        index index.php index.htm index.nginx-debian.html;
...

Buscaremos también la sección location referida a PHP:

...
        # pass PHP scripts to FastCGI server
        #
        #location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
        #       fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        #}
...

Descomentaremos este bloque location y dentro de este sólo la directiva fastcgi_pass para la conexión por socket de Unix:

...
        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

        #       # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        }
...

Para aplicar los cambios, recargaremos la configuración del servicio web:

~$ sudo systemctl reload nginx

Probar LEMP en Debian 10 Buster

Vamos a comprobar la integración de los servicios creando un pequeño script PHP en una ruta fácilmente localizable vía web:

~$ sudo nano /var/www/html/info.php

El único contenido de este archivo será la siguiente línea:

<?php phpinfo();

Guardamos los cambios y cerramos el archivo. Ahora desde el navegador podremos acceder a este script añadiendo la ruta /info.php a la dirección IP o dominio del servidor:

Examinando la información que nos brinda la función phpinfo() podremos ver que se han cargado las extensiones para MySQL (MariaDB) y la configuración de la zona horaria.

Ahora nuestro sistema Debian 10 está listo para el desarrollo o instalación de aplicaciones basadas en el entorno LEMP.

Conclusión

Así de sencillo es instalar LEMP en Debian 10 Buster, una opción para aprovechar las prestaciones de Nginx en todo tipo de aplicaciones web.

¡Apoya este sitio!

Si esta guía de instalación LEMP en Debian 10 Buster era lo que necesitabas para montar esta pila en tu servidor o VPS, y estás tan satisfecho que quieres agradecérnoslo, puedes contribuir al mantenimiento de este sitio dejando una propina de tan sólo 1 $ desde PayPal:

¡Gracias!

5/5 - (1 voto)

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.