Ricerca nel sito web

Come installare LEMP sul server Debian 10


Uno stack "LEMP" è una combinazione di software open source generalmente installato su un server Linux per distribuire applicazioni dinamiche. Questo termine è un acronimo che rappresenta il sistema operativo Linux, il server web Nginx, un database MariaDB e la programmazione PHP.

Leggi anche: Come installare LAMP sul server Debian 10

Sebbene questo stack “LEMP” contenga normalmente MySQL come sistema di gestione del database, alcune distribuzioni Linux come Debian — utilizzano MariaDB come sostituto immediato di MySQL.

Requisiti

  1. Come installare un server minimo Debian 10 (Buster).

In questo articolo ti spiegheremo come installare e configurare un ambiente LEMP su un server Debian 10, utilizzando MariaDB come gestione del database piattaforma.

Installazione del server Web Nginx su Debian 10

Nginx è un server HTTP e proxy inverso open source e multipiattaforma, leggero ma potente e facile da configurare, un server proxy di posta e un proxy TCP/UDP generico server, con architettura modulare.

Alcune delle sue funzionalità di base includono la fornitura di file statici e di indice; supporto accelerato con memorizzazione nella cache di server FastCGI, uwsgi, SCGI e Memcached, bilanciamento del carico e tolleranza agli errori, SSL e supporto TLS SNI, supporto per HTTP/2 con priorità ponderata e basata sulle dipendenze.

Per installare il pacchetto Nginx, utilizzare il gestore pacchetti apt di Debian come mostrato.

apt update 
apt install nginx 

Una volta completata l'installazione di Nginx, il programma di installazione attiverà systemd per avviare momentaneamente il servizio Nginx e abilitarne l'avvio automatico all'avvio del sistema. Puoi controllare lo stato di Nginx usando il seguente comando systemctl.

systemctl status nginx

Puoi anche utilizzare i seguenti comandi importanti per avviare, riavviare, arrestare e ricaricare la configurazione del servizio Nginx in systemd.

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

Successivamente, se hai il firewall UFW in esecuzione (di solito è disabilitato per impostazione predefinita), devi aprire le porte 80 (HTTP) e 443 (HTTPS) per consentire il traffico in entrata su Nginx.

ufw allow 80
ufw allow 443
ufw status

A questo punto, devi verificare se Nginx è installato correttamente, se è in esecuzione e può servire pagine web. Per fare ciò, apri un browser web e puntalo al seguente URL per accedere alla pagina web Nginx Debian Default.

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

Installazione di MariaDB su Debian 10

Successivamente, è necessario installare un sistema di database per poter archiviare e gestire i dati per il tuo sito web o app web. Debian 10 supporta MariaDB per impostazione predefinita, come sostituto immediato di MySQL.

Per installare MariaDB, esegui il seguente comando.

apt install mariadb-server

Successivamente, controlla lo stato del servizio MariaDB poiché è avviato automaticamente da systemd e abilitato per l'avvio all'avvio del sistema, per assicurarti che sia attivo e funzionante, utilizza il seguente comando.

systemctl status mariadb

Per gestire (avviare, riavviare, arrestare e ricaricare) il servizio MariaDB sotto systemd, puoi utilizzare il seguente comando.

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

Successivamente, la distribuzione di MariaDB non sarà sicura per impostazione predefinita. È necessario eseguire uno script di shell fornito con il pacchetto per consentire di migliorare la sicurezza del database.

mysql_secure_installation

Dopo aver eseguito lo script, ti guiderà attraverso una serie di domande seguenti per modificare le impostazioni predefinite dell'installazione di MariaDB, come mostrato nello screenshot seguente.

Installazione di PHP-FPM (Fast Process Manager) su Debian 10

A differenza di Apache e di altri server web, Nginx non fornisce supporto nativo per PHP, poiché utilizza PHP-FPM per gestire le richieste di pagine PHP. PHP-FPM è un demone FastCGI alternativo per PHP che consente a un sito Web di gestire carichi elevati, utilizzando i processi di lavoro per gestire le richieste.

Per installare PHP-FPM versione 7.3 e un modulo PHP per comunicare con un sistema di database MariaDB/MySQL, esegui il seguente comando.

apt install php-fpm php-mysqli

Dopo l'installazione di PHP-FPM, il programma di installazione attiverà systemd per avviare momentaneamente il servizio PHP-FPM e abilitarne l'avvio automatico all'avvio del sistema. Per verificare se è attivo e funzionante, emettere il seguente comando.

systemctl status php-fpm

Puoi anche avviare, riavviare, interrompere e ricaricare la configurazione del servizio PHP-FPM sotto systemd, come segue.

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

Successivamente, devi proteggere PHP-FPM apportando alcune modifiche al file di configurazione /etc/php/7.3/fpm/php.ini come segue.

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

Cerca ;cgi.fix_pathinfo=1 decommentalo rimuovendo il carattere ; all'inizio, imposta il suo valore su 0. Ciò impedisce a Nginx di consentire l'esecuzione di file non PHP come PHP.

cgi.fix_pathinfo=0

Per impostazione predefinita, PHP-FPM è configurato per l'ascolto su un soxket UNIX, /run/php/php7.3-fpm.sock come definito in /etc /php/7.3/fpm/pool.d/www.conf file di configurazione. Devi configurare tutto il tuo blocco server (o host virtuali) per utilizzare questo socket se devono elaborare e servire pagine PHP.

Puoi utilizzare il file di configurazione del blocco del server predefinito di Nginx /etc/nginx/sites-available/default per testarlo.

vi /etc/nginx/sites-available/default 

Cerca la sezione seguente e decommentala per passare gli script PHP al server FastCGI come mostrato nello screenshot.

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

Successivamente, verifica se la struttura di configurazione di Nginx è OK, utilizzando il seguente comando.

nginx -t

Se la configurazione di Nginx è OK, per applicare le modifiche apportate di recente, riavviare i servizi php7.3-fpm e nginx come segue.

systemctl restart php7.2-fpm
systemctl restart nginx

Test dell'elaborazione PHP-FPM su Nginx

Dopo aver configurato PHP-FPM e Nginx per funzionare insieme, devi verificare se due servizi possono elaborare e servire pagine PHP ai client. Per fare ciò, crea un semplice script PHP nel tuo DocumentRoot web come segue.

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

Infine, apri un browser e digita il seguente indirizzo per vedere le configurazioni PHP sul sistema generate dalla funzione phpinfo().

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

Conclusione

In questo articolo, abbiamo mostrato come installare e configurare lo stack LEMP in Debian 10. Se hai domande o feedback, contattaci e faccelo sapere tramite il modulo di commento qui sotto.