Com instal·lar LEMP al servidor Debian 10


Una pila LEMP és una barreja de programari de codi obert que normalment s'instal·la en un servidor Linux per desplegar aplicacions dinàmiques. Aquest terme és un acrònim que representa el sistema operatiu Linux, el servidor web Nginx, una base de dades MariaDB i la programació PHP.

Tot i que aquesta pila \LEMP normalment conté MySQL com a sistema de gestió de bases de dades, algunes distribucions de Linux, com ara Debian, utilitzen MariaDB com a substitut de MySQL.

  1. Com instal·lar un servidor mínim Debian 10 (Buster)

En aquest article, us explicarem com instal·lar i configurar un entorn LEMP en un servidor Debian 10, utilitzant MariaDB com a plataforma de gestió de bases de dades.

Instal·lació del servidor web Nginx a Debian 10

Nginx és un servidor intermediari de codi obert i multiplataforma, lleuger però potent i fàcil de configurar HTTP i servidor intermediari invers, un servidor intermediari de correu i un servidor intermediari TCP/UDP genèric, amb una arquitectura modular.

Algunes de les seves característiques bàsiques inclouen servir fitxers estàtics i d'índex; suport accelerat amb memòria cau dels servidors FastCGI, uwsgi, SCGI i Memcached, equilibri de càrrega i tolerància a errors, suport SSL i TLS SNI, suport per a HTTP/2 amb priorització ponderada i basada en dependències.

Per instal·lar el paquet Nginx, utilitzeu el gestor de paquets apt de Debian tal com es mostra.

# apt update 
# apt install nginx 

Un cop finalitzada la instal·lació de Nginx, l'instal·lador activarà systemd per iniciar el servei Nginx de moment i permetrà que s'iniciï automàticament a l'arrencada del sistema. Podeu comprovar l'estat de Nginx mitjançant la següent comanda systemctl.

# systemctl status nginx

També podeu utilitzar les ordres importants següents per iniciar, reiniciar, aturar i tornar a carregar la configuració del servei Nginx a systemd.

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

A continuació, si teniu el tallafoc UFW en execució (normalment està desactivat per defecte), heu d'obrir el port 80 (HTTP) i 443 (HTTPS) per permetre el trànsit entrant a Nginx.

# ufw allow 80
# ufw allow 443
# ufw status

En aquest punt, heu de provar si Nginx està instal·lat correctament, si s'està executant i pot servir pàgines web. Per fer-ho, obriu un navegador web i apunteu-lo a l'URL següent per accedir a la pàgina web predeterminada de Nginx Debian.

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

Instal·lant MariaDB a Debian 10

A continuació, heu d'instal·lar un sistema de bases de dades per poder emmagatzemar i gestionar les dades del vostre lloc web o aplicació web. Debian 10 admet MariaDB de manera predeterminada, com a reemplaçament de MySQL.

Per instal·lar MariaDB, executeu l'ordre següent.

# apt install mariadb-server

A continuació, comproveu l'estat del servei MariaDB, ja que s'inicia automàticament per systemd i s'habilita per iniciar-se a l'arrencada del sistema, per assegurar-vos que estigui en funcionament, utilitzeu l'ordre següent.

# systemctl status mariadb

Per gestionar (iniciar, reiniciar, aturar i tornar a carregar) el servei MariaDB a systemd, podeu utilitzar l'ordre següent.

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

A continuació, el desplegament de MariaDB serà insegur per defecte. Heu d'executar un script d'intèrpret d'ordres que s'envia amb el paquet, per permetre-vos millorar la seguretat de la base de dades.

# mysql_secure_installation

Després d'executar l'script, us portarà a través d'una sèrie de preguntes següents per modificar la configuració predeterminada de la instal·lació de MariaDB, tal com es mostra a la captura de pantalla següent.

Instal·lant PHP-FPM (Fast Process Manager) a Debian 10

A diferència d'Apache i altres servidors web, Nginx no ofereix suport natiu per a PHP, ja que utilitza PHP-FPM per gestionar les sol·licituds de pàgines PHP. PHP-FPM és un dimoni FastCGI alternatiu per a PHP que permet a un lloc web gestionar càrregues elevades, utilitzant processos de treball per gestionar les sol·licituds.

Per instal·lar PHP-FPM versió 7.3 i un mòdul PHP per comunicar-se amb un sistema de bases de dades MariaDB/MySQL, executeu l'ordre següent.

# apt install php-fpm php-mysqli

Un cop instal·lat PHP-FPM, l'instal·lador activarà systemd per iniciar el servei PHP-FPM de moment i permetrà que s'iniciï automàticament a l'arrencada del sistema. Per comprovar si està en funcionament, emet l'ordre següent.

# systemctl status php-fpm

També podeu iniciar, reiniciar aturar i tornar a carregar la configuració del servei PHP-FPM a systemd, de la següent manera.

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

A continuació, heu de protegir PHP-FPM fent alguns canvis al fitxer de configuració /etc/php/7.3/fpm/php.ini de la següent manera.

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

Cerqueu el ;cgi.fix_pathinfo=1 descomenta-lo eliminant el caràcter ; al començament, establiu el seu valor a 0. Això impedeix que Nginx permeti executar fitxers que no siguin PHP com a PHP.

cgi.fix_pathinfo=0

Per defecte, PHP-FPM està configurat per escoltar en un soxket UNIX, /run/php/php7.3-fpm.sock tal com es defineix al fitxer de configuració /etc/php/7.3/fpm/pool.d/www.conf. Heu de configurar tot el vostre bloc de servidors (o hosts virtuals) per utilitzar aquest sòcol si voleu processar i servir pàgines PHP.

Podeu utilitzar el fitxer de configuració del bloc del servidor predeterminat de Nginx /etc/nginx/sites-available/default per provar-ho.

# vi /etc/nginx/sites-available/default 

Cerqueu la secció següent i descomenteu-la per passar scripts PHP al servidor FastCGI, tal com es mostra a la captura de pantalla.

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

A continuació, comproveu si l'estructura de configuració de Nginx està bé mitjançant l'ordre següent.

# nginx -t

Si la configuració de Nginx està bé, per aplicar els canvis fets recentment, reinicieu els serveis php7.3-fpm i nginx de la següent manera.

# systemctl restart php7.2-fpm
# systemctl restart nginx

Prova de processament PHP-FPM a Nginx

Després de configurar PHP-FPM i Nginx perquè funcionin junts, heu de provar si dos serveis poden processar i oferir pàgines PHP als clients. Per fer-ho, creeu un script PHP senzill al vostre DocumentRoot web de la següent manera.

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

Finalment, obriu un navegador i escriviu l'adreça següent per veure les configuracions de PHP al sistema generades per la funció phpinfo().

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

En aquest article, hem mostrat com instal·lar i configurar la pila LEMP a Debian 10. Si teniu cap pregunta o comentari, poseu-vos en contacte amb nosaltres i feu-nos-ho saber mitjançant el formulari de comentaris a continuació.