Búsqueda de sitios web

Cómo instalar LEMP en el servidor Debian 10


Una pila “LEMP” es una combinación de software de código abierto que normalmente se instala en un servidor Linux para implementar aplicaciones dinámicas. Este término es un acrónimo que representa el sistema operativo Linux, el servidor web Nginx, una base de datos MariaDB y la programación PHP.

Lea también: Cómo instalar LAMP en el servidor Debian 10

Aunque esta pila “LEMP” normalmente contiene MySQL como sistema de gestión de bases de datos, algunas distribuciones de Linux como Debian utilizan MariaDB. como reemplazo directo de MySQL.

Requisitos

  1. Cómo instalar un servidor mínimo Debian 10 (Buster)

En este artículo, le explicaremos cómo instalar y configurar un entorno LEMP en un servidor Debian 10, utilizando MariaDB como administrador de la base de datos. plataforma.

Instalación del servidor web Nginx en Debian 10

Nginx es un servidor HTTP y proxy inverso, de código abierto y multiplataforma, liviano pero potente y fácil de configurar, un servidor proxy de correo y un proxy TCP/UDP genérico. servidor, con una arquitectura modular.

Algunas de sus características básicas incluyen servir archivos estáticos y de índice; soporte acelerado con almacenamiento en caché de servidores FastCGI, uwsgi, SCGI y Memcached, equilibrio de carga y tolerancia a fallos, SSL y compatibilidad con TLS SNI, compatibilidad con HTTP/2 con priorización ponderada y basada en dependencias.

Para instalar el paquete Nginx, utilice el administrador de paquetes apt de Debian como se muestra.

apt update 
apt install nginx 

Una vez que se complete la instalación de Nginx, el instalador activará systemd para iniciar el servicio Nginx por ahora y permitirá que se inicie automáticamente al iniciar el sistema. Puede verificar el estado de Nginx usando el siguiente comando systemctl.

systemctl status nginx

También puede utilizar los siguientes comandos importantes para iniciar, reiniciar, detener y recargar la configuración del servicio Nginx en systemd.

systemctl start nginx
systemctl restart nginx 
systemctl stop nginx
systemctl reload nginx 
systemctl status nginx 

A continuación, si tiene el firewall UFW en ejecución (normalmente está deshabilitado de forma predeterminada), debe abrir el puerto 80 (HTTP) y el 443 (HTTPS) para permitir el tráfico entrante. en Nginx.

ufw allow 80
ufw allow 443
ufw status

En este punto, debe probar si Nginx está instalado correctamente, si se está ejecutando y si puede servir páginas web. Para hacerlo, abra un navegador web y apúntelo a la siguiente URL para acceder a la página web Nginx Debian Default.

http://SERVER_IP/
OR
http://localhost/

Instalación de MariaDB en Debian 10

A continuación, debe instalar un sistema de base de datos para poder almacenar y administrar datos para su sitio web o aplicación web. Debian 10 admite MariaDB de forma predeterminada, como reemplazo directo de MySQL.

Para instalar MariaDB, ejecute el siguiente comando.

apt install mariadb-server

A continuación, verifique el estado del servicio MariaDB, ya que systemd lo inicia automáticamente y está habilitado para iniciarse en el inicio del sistema; para asegurarse de que esté en funcionamiento, use el siguiente comando.

systemctl status mariadb

Para administrar (iniciar, reiniciar, detener y recargar) el servicio MariaDB en systemd, puede utilizar el siguiente comando.

systemctl start mariadb
systemctl restart mariadb
systemctl stop mariadb
systemctl reload mariadb

A continuación, la implementación de MariaDB será insegura de forma predeterminada. Debe ejecutar un script de shell que se incluye con el paquete para permitirle mejorar la seguridad de la base de datos.

mysql_secure_installation

Después de ejecutar el script, lo guiará a través de una serie de preguntas siguientes para modificar la configuración predeterminada de la instalación de MariaDB como se muestra en la siguiente captura de pantalla.

Instalación de PHP-FPM (Fast Process Manager) en Debian 10

A diferencia de Apache y otros servidores web, Nginx no proporciona soporte nativo para PHP, ya que utiliza PHP-FPM. para manejar solicitudes de páginas PHP. PHP-FPM es un demonio FastCGI alternativo para PHP que permite que un sitio web maneje cargas elevadas mediante el uso de procesos de trabajo para manejar solicitudes.

Para instalar PHP-FPM versión 7.3 y un módulo PHP para comunicarse con un sistema de base de datos MariaDB/MySQL, ejecute el siguiente comando.

apt install php-fpm php-mysqli

Después de instalar PHP-FPM, el instalador activará systemd para iniciar el servicio PHP-FPM por ahora y permitirá que se inicie automáticamente al iniciar el sistema. Para comprobar si está en funcionamiento, emita el siguiente comando.

systemctl status php-fpm

También puede iniciar, reiniciar, detener y recargar la configuración del servicio PHP-FPM en systemd, de la siguiente manera.

systemctl start php-fpm
systemctl restart php-fpm
systemctl stop php-fpm
systemctl reload php-fpm
systemctl status php-fpm

A continuación, debe proteger PHP-FPM realizando algunos cambios en el archivo de configuración /etc/php/7.3/fpm/php.ini de la siguiente manera.

vi /etc/php/7.3/fpm/php.ini

Busque ;cgi.fix_pathinfo=1, descomentelo eliminando el carácter ; al principio y establezca su valor en 0. Esto evita que Nginx permita que archivos que no sean PHP se ejecuten como PHP.

cgi.fix_pathinfo=0

De forma predeterminada, PHP-FPM está configurado para escuchar en un soxket UNIX, /run/php/php7.3-fpm.sock como se define en /etc. /php/7.3/fpm/pool.d/www.conf archivo de configuración. Debe configurar todos sus bloques de servidores (o hosts virtuales) para usar este socket si van a procesar y servir páginas PHP.

Puede utilizar el archivo de configuración del bloque del servidor predeterminado de Nginx /etc/nginx/sites-available/default para probarlo.

vi /etc/nginx/sites-available/default 

Busque la siguiente sección y descomentela para pasar scripts PHP al servidor FastCGI como se muestra en la captura de pantalla.

location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}

A continuación, pruebe si la estructura de configuración de Nginx está OK, usando el siguiente comando.

nginx -t

Si la configuración de Nginx está OK, para aplicar los cambios realizados recientemente, reinicie los servicios php7.3-fpm y nginx de la siguiente manera.

systemctl restart php7.2-fpm
systemctl restart nginx

Prueba del procesamiento PHP-FPM en Nginx

Después de configurar PHP-FPM y Nginx para que funcionen juntos, debe probar si dos servicios pueden procesar y entregar páginas PHP a los clientes. Para hacer eso, cree un script PHP simple en su DocumentRoot web de la siguiente manera.

echo “<?php phpinfo(); ?>”  | tee /var/www/html/info.php

Finalmente, abra un navegador y escriba la siguiente dirección para ver las configuraciones de PHP en el sistema generadas por la función phpinfo().

http://SERVER_IP/info.php
OR
http://localhost/info.php

Conclusión

En este artículo, hemos mostrado cómo instalar y configurar la pila LEMP en Debian 10. Si tiene alguna pregunta o comentario, comuníquese con nosotros y háganoslo saber a través del formulario de comentarios a continuación.