LEMP Stack · 6 min read · Jan 05, 2026

Installa LEMP Stack (Nginx, PHP e MariaDB) su Debian 11

Il LEMP Stack è un insieme di software open-source e framework o librerie utilizzati per ospitare applicazioni web su Internet. Uno stack è composto dal sistema operativo Linux, dal server web Nginx, dal server di database MariaDB/MySQL e dal linguaggio PHP. Un LEMP ha un buon supporto della comunità ed è utilizzato in molte applicazioni web altamente scalate in tutto il mondo.

In questo post, ti mostreremo come installare il LEMP stack su Debian 11.

Prerequisiti

  • Un server che esegue Debian 11.
  • Un nome di dominio valido puntato all’IP del tuo server.
  • Una password di root configurata sul server.

Iniziare

Prima di iniziare, è una buona idea aggiornare i pacchetti del tuo sistema all’ultima versione. Puoi aggiornare tutti i pacchetti utilizzando il seguente comando:

apt-get update -y

Una volta che il tuo sistema è aggiornato, puoi procedere al passaggio successivo.

Installa il server web Nginx

Nginx è un server web gratuito e open-source che segue un’architettura basata su eventi ed è in grado di gestire più richieste all’interno di un thread. È compatibile con applicazioni comunemente utilizzate ed è usato per servire file statici.

Per impostazione predefinita, il pacchetto Nginx è incluso nel repository predefinito di Debian 11. Puoi installarlo utilizzando il seguente comando:

apt-get install nginx -y

Una volta installato Nginx, avvia il servizio Nginx e abilitalo per avviarsi al riavvio del sistema:

systemctl start nginx  
systemctl enable nginx

Puoi anche verificare la versione installata di Nginx con il seguente comando:

nginx -v

Dovresti vedere il seguente output:

nginx version: nginx/1.18.0

Per impostazione predefinita, Nginx funziona sulla porta 80. Puoi controllarlo utilizzando il seguente comando:

ss -antpl | grep nginx

Dovresti vedere il seguente output:

LISTEN 0      511          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=44342,fd=8),("nginx",pid=44341,fd=8))
LISTEN 0      511             [::]:80           [::]:*    users:(("nginx",pid=44342,fd=9),("nginx",pid=44341,fd=9))

Puoi anche controllare l’installazione di Nginx utilizzando l’URL http://your-server-ip. Dovresti vedere la pagina di test di Nginx nella seguente pagina:

Pagina di benvenuto di Nginx

A questo punto, il server web Nginx è installato. Puoi ora procedere al passaggio successivo.

Installa il server di database MariaDB

MariaDB è un database SQL open-source utilizzato per memorizzare e gestire dati per siti web. Per impostazione predefinita, il pacchetto MariaDB è incluso nel repository predefinito di Debian 11. Puoi installarlo utilizzando il seguente comando:

apt-get install mariadb-server -y

Una volta installato il server di database MariaDB, avvia il servizio MariaDB e abilitalo per avviarsi al riavvio del sistema:

systemctl start mariadb  
systemctl enable mariadb

Puoi anche controllare lo stato del servizio MariaDB con il seguente comando:

systemctl status mariadb

Dovresti vedere il seguente output:

? mariadb.service - Server di database MariaDB 10.3.31
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:13:25 UTC; 1min 36s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 1838 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 2353)
     Memory: 66.1M
     CGroup: /system.slice/mariadb.service
             ??1838 /usr/sbin/mysqld

È anche consigliato proteggere la tua installazione di MariaDB e impostare una password di root per MariaDB. Puoi eseguire lo script mysql_secure_installation per proteggere l’installazione di MariaDB:

mysql_secure_installation

Ti verrà chiesto di impostare una password di root per MariaDB, rimuovere utenti anonimi, vietare il login remoto di root e rimuovere il database di test come mostrato di seguito:

Enter current password for root (enter for none): 
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Per impostazione predefinita, MariaDB funziona sulla porta 3306. Puoi controllarlo utilizzando il seguente comando:

ss -antpl | grep mariadb

Dovresti vedere il seguente comando:

LISTEN 0      80         127.0.0.1:3306      0.0.0.0:*    users:(("mariadbd",pid=12181,fd=15))

Per connetterti alla shell di MariaDB, esegui il seguente comando:

mysql -u root -p

Fornisci la tua password di root per MariaDB e premi Invio per connetterti alla shell di MariaDB. Una volta connesso, dovresti vedere il seguente output:

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 64
Server version: 10.5.11-MariaDB-1 Debian 11

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

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

Ora, esegui il seguente comando per controllare la versione di MariaDB:

MariaDB [(none)]> SELECT VERSION();

Dovresti vedere il seguente output:

+-------------------+
| VERSION()         |
+-------------------+
| 10.5.11-MariaDB-1 |
+-------------------+
1 row in set (0.001 sec)

A questo punto, il server di database MariaDB è installato e protetto. Puoi ora procedere al passaggio successivo.

Installa il linguaggio PHP

PHP sta per Hypertext Preprocessor ed è un linguaggio di scripting utilizzato lato server. È open-source, ha un ampio supporto della comunità ed è utilizzato per ospitare applicazioni PHP su Internet.

Per impostazione predefinita, la versione di PHP disponibile in Debian 11 è PHP 7.4. Puoi installare PHP con altre estensioni comunemente utilizzate con il seguente comando:

apt-get install php php-fpm php-cli php-mysql php-zip php-curl php-xml -y

Una volta installato PHP, verifica la versione di PHP utilizzando il seguente comando:

php -v

Dovresti vedere il seguente output:

PHP 7.4.21 (cli) (built: Jul  2 2021 03:59:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

Crea un host virtuale per Nginx

Qui, creeremo una directory example.com per ospitare una pagina PHP. Puoi crearla con il seguente comando:

mkdir /var/www/html/example.com

Successivamente, imposta la proprietà della directory example.com su www-data:

chown -R www-data:www-data /var/www/html/example.com

Successivamente, crea un file di configurazione dell’host virtuale Nginx con il seguente comando:

nano /etc/nginx/conf.d/example.conf

Aggiungi le seguenti righe:

server {

  listen 80;
  server_name example.com;

  root /var/www/html/example.com;
  index index.php;
  access_log /var/log/nginx/example_access.log;
  error_log /var/log/nginx/example_error.log;

  client_max_body_size 100M;

  location / {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  location ~ \.php$ {
    try_files $uri =404;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

}

Salva e chiudi il file, quindi verifica la configurazione di Nginx per eventuali errori di configurazione con il seguente comando:

nginx -t

Dovresti vedere il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Successivamente, riavvia il servizio Nginx per applicare le modifiche alla configurazione:

systemctl restart nginx

Puoi anche controllare lo stato del servizio Nginx utilizzando il seguente comando:

systemctl status nginx

Dovresti vedere il seguente output:

? nginx.service - Un server web ad alte prestazioni e un server proxy inverso
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:37:27 UTC; 5s ago
       Docs: man:nginx(8)
   Main PID: 4378 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 6.2M
     CGroup: /system.slice/nginx.service
             ??4378 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??4379 nginx: worker process

Aug 21 04:37:27 debian11 systemd[1]: Starting Un server web ad alte prestazioni e un server proxy inverso...
Aug 21 04:37:27 debian11 systemd[1]: Started Un server web ad alte prestazioni e un server proxy inverso.

Verifica l’installazione di PHP su Nginx

Successivamente, dovrai creare un file PHP di esempio da servire tramite il server web Nginx. Puoi creare un file phpinfo.php all’interno della tua directory example.com:

nano /var/www/html/example.com/phpinfo.php

Aggiungi la seguente riga:


Salva e chiudi il file, quindi apri il tuo browser web e accedi alla tua pagina PHP utilizzando l’URL http://example.com/phpinfo.php. Dovresti vedere la tua pagina PHP nella seguente schermata:

Conclusione

Nella guida sopra, abbiamo spiegato come installare il LEMP stack su Debian 11. Puoi ora iniziare a ospitare il tuo primo sito web utilizzando il LEMP stack. Sentiti libero di chiedermi se hai domande.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.