LEMP Stack · 9 min read · Sep 10, 2025

Come installare LEMP Stack (Linux, Nginx, PHP e MariaDB) su Ubuntu 24.04

Il LEMP Stack (Linux, Nginx, MySQL/MariaDB e PHP) è un insieme di applicazioni software gratuite e open-source per l’hosting e lo sviluppo di applicazioni web PHP. Il LEMP Stack può essere utilizzato per distribuire sia applicazioni web statiche che dinamiche.

Questa guida ti mostrerà come installare il LEMP Stack (Linux, Nginx, MySQL/MariaDB e PHP) su Ubuntu 24.04 “Noble Numbat”. Ti mostreremo anche come proteggere il server MariaDB e creare una configurazione del blocco del server Nginx per ospitare siti web o nomi di dominio.

Prerequisiti

Prima di iniziare, assicurati di avere Ubuntu 24.04 “Noble Numbat” con l’utente root o non-root con privilegi sudo/amministratore. Inoltre, assicurati che il UFW (Uncomplicated Firewall) sia in esecuzione e abilitato.

Installazione del server web Nginx

Nginx o engine-x è il server web più popolare su Internet. È diventato popolare perché Nginx può gestire un alto traffico simultaneamente con risorse di sistema minime. In questo primo passaggio, installerai il server web Nginx sul server Ubuntu.

Prima di installare i pacchetti, aggiorna e aggiorna l’elenco dei pacchetti di Ubuntu con il seguente comando.

sudo apt update

update repo

Installa il server web Nginx sulla tua macchina Ubuntu con il comando sottostante. Inserisci Y per confermare l’installazione quando richiesto.

sudo apt install nginx

install nginx

Una volta completata l’installazione, il servizio Nginx dovrebbe essere in esecuzione e abilitato sul tuo sistema. Verifica il servizio Nginx con il comando sottostante.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Dovresti vedere che il servizio Nginx è ‘ abilitato ‘ e lo stato attuale è ‘ attivo (in esecuzione) ‘.

check nginx service

Prima di accedere a Nginx, devi aprire sia le porte HTTP che HTTPS sul tuo server Ubuntu tramite UFW (Uncomplicated Firewall).

Esegui il seguente comando ‘ ufw ‘ per abilitare il profilo ‘ Nginx Full ‘, che consentirà l’accesso HTTP e HTTPS al tuo server Ubuntu.

sudo ufw allow 'Nginx Full'

Ora verifica le regole UFW con il seguente comando. Assicurati che il profilo ‘ Nginx Full ‘ sia abilitato con lo stato ‘ALLOW’.

sudo ufw status

setup nginx ufw

Infine, visita http://192.168.5.30/ dal tuo browser web preferito per accedere alla tua installazione di Nginx. Se hai successo, dovresti ottenere la pagina predefinita ‘ index.html ‘ come segue:

nginx index

Installazione del server MariaDB

Dopo aver installato Nginx, installerai il server MariaDB su Ubuntu. In questo esempio, installerai MariaDB tramite il repository di Ubuntu, quindi proteggerai l’installazione di MariaDB tramite l’utilità ‘ mariadb-secure-installation ‘.

Per installare il server MariaDB su Ubuntu, esegui il seguente comando ‘ apt install ‘. Inserisci Y e premi INVIO per procedere con il processo.

sudo apt install mariadb-server

install mariadb server

Una volta terminata l’installazione, verifica il servizio MariaDB con il comando sottostante. Questo ti mostrerà lo stato del servizio MariaDB.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

Il servizio MariaDB è ‘ abilitato ‘ con lo stato attuale ‘ attivo (in esecuzione) ‘.

check mariadb service

Una volta installato il server MariaDB, devi proteggerlo tramite ‘ mariadb-secure-installation ‘. Questo ti consente di impostare la password di root di MariaDB, disabilitare l’autenticazione remota per l’utente root e rimuovere anche database e privilegi non necessari dalla tua installazione del server MariaDB.

Esegui il comando ‘ mariadb-secure-installation ‘ sottostante per proteggere il server MariaDB.

sudo mariadb-secure-installation

Ora ti verrà chiesto riguardo alle seguenti configurazioni del server MariaDB:

Premi INVIO quando richiesto per la password di root di MariaDB.

Enter current password for root (enter for none):  
OK, successfully used password, moving on...

Digita ‘ n ‘ quando ti viene chiesto di passare all’autenticazione unix_socket.

Switch to unix_socket authentication [Y/n] n  
 ... skipping.

Digita Y per configurare la password di root di MariaDB. Quindi, inserisci la tua nuova password e ripetila.

Change the root password? [Y/n] Y  
New password:  
Re-enter new password:  
Password updated successfully!  
Reloading privilege tables..  
 ... Success!

Digita Y per rimuovere l’utente anonimo predefinito dalla tua installazione del server MariaDB.

Remove anonymous users? [Y/n] Y  
 ... Success!

Digita Y per disabilitare il login remoto per l’utente root di MariaDB. L’utente root dovrebbe sempre connettersi da localhost.

Disallow root login remotely? [Y/n] Y  
 ... Success!

Ora digita Y di nuovo per rimuovere il database di test predefinito e i suoi privilegi dalla tua installazione del server MariaDB.

Remove test database and access to it? [Y/n] Y  
 - Dropping test database...  
 ... Success!  
 - Removing privileges on test database...  
 ... Success!

Digita Y per ricaricare le tabelle dei privilegi e applicare tutte le modifiche che hai effettuato finora.

Reload privilege tables now? [Y/n] Y  
 ... Success!

Quando hai finito, vedrai il seguente messaggio:

All done! If you've completed all of the above steps, your MariaDB  
installation should now be secure.  
  
Thanks for using MariaDB!

Installazione di PHP-FPM

PHP-FPM (FastCGI Process Manager) è un’alternativa all’implementazione FastCGI per PHP. È principalmente utilizzato per siti ad alto traffico con Nginx come server web. In questa sezione, installerai PHP-FPM con alcune estensioni aggiuntive, come mysqli per il driver MySQL/MariaDB, opcache e APCu per la cache.

Installa PHP-FPM sul tuo server Ubuntu con il seguente comando. Quando richiesto, inserisci Y e premi INVIO per procedere.

sudo apt install php-fpm php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip

install php-fpm

Dopo che l’installazione è terminata, il servizio PHP-FPM dovrebbe essere attivo e funzionante. Controlla lo stato del servizio PHP-FPM con il seguente comando.

sudo systemctl is-enabled php8.3-fpm  
sudo systemctl status php8.3-fpm

Come puoi vedere qui sotto, PHP-FPM è ‘ attivo (in esecuzione) ‘ e ‘ abilitato ‘ all’avvio del sistema:

check php-fpm service

Su Ubuntu, il PHP-FPM predefinito è in esecuzione sotto il file sock. Conoscere il percorso del file sock di PHP-FPM è importante, poiché sarà utilizzato per l’integrazione con il server web Nginx.

Controlla il percorso del file sock di PHP-FPM con il seguente comando.

ss -pl | grep php

Nell’output seguente, puoi vedere che il file sock di PHP-FPM si trova in ‘ /run/php/php8.3-fpm.sock ‘.

Integrazione di Nginx con PHP-FPM

Quindi hai installato PHP-FPM, è tempo di integrarlo con il server web Nginx. Per farlo, devi conoscere esattamente il percorso del file sock di PHP-FPM e quindi modificare il file di blocco del server Nginx predefinito.

Apri la configurazione del blocco del server ‘ /etc/nginx/sites-available/default ‘ utilizzando il seguente comando dell’editor nano.

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

Decommenta le seguenti righe e assicurati di cambiare il percorso del file sock di PHP-FPM con la nuova posizione.

 # 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/php8.3-fpm.sock;  
  
     # # With php-cgi (or other tcp sockets):  
     # fastcgi_pass 127.0.0.1:9000;  
 }

Salva il file ed esci dall’editor.

Ora esegui il comando ‘ nginx ‘ sottostante per verificare la sintassi di Nginx. Devi eseguire questo comando dopo aver apportato modifiche alla configurazione di Nginx.

sudo nginx -t

Se hai una sintassi Nginx corretta, dovresti ricevere una conferma come la seguente:

integrate nginx and php-fpm

Successivamente, esegui il comando sottostante per riavviare il servizio Nginx e applicare la tua integrazione tra Nginx e PHP-FPM.

sudo systemctl restart nginx

Con Nginx riavviato, puoi verificare la tua integrazione tramite il file PHPINFO. Esegui il comando sottostante per creare il file PHPINFO ‘ info.php ‘ nella directory web-root predefinita ‘ /var/www/html/ ‘.

echo "" > /var/www/html/info.php

Infine, torna al tuo browser web e visita http://192.168.5.30/info.php. Se la tua integrazione di Nginx e PHP-FPM ha avuto successo, dovresti ottenere quanto segue:

Puoi vedere qui sotto che PHP 8.3 è in esecuzione con l’API del server PHP-FPM sotto il server web Nginx.

phpinfo

Scorri verso il basso nella pagina e vedrai anche l’estensione PHP mysqli/mysqlnd installata.

php mysql enabled

Infine, vedrai anche la cache tramite APC abilitata nella tua installazione di PHP.

php apc enabled

Creazione del blocco del server Nginx (host virtuale)

Un blocco del server è solo un altro nome per un ‘host virtuale’ per un server web Nginx. Viene utilizzato per ospitare più siti web o nomi di dominio su un singolo server. In questa sezione, imparerai come creare un blocco del server Nginx.

Prima di creare la configurazione del blocco del server, esegui il comando sottostante per creare una nuova directory web-root ‘/var/www/newsite/public_html’ e una pagina personalizzata ‘index.html’.

mkdir -p /var/www/newsite/public_html  
echo "Welcome to newsite.com" > /var/www/newsite/public_html/index.html

Ora esegui il comando sottostante per cambiare la proprietà della directory ‘ /var/www/newsite ‘ all’utente ‘ www-data ‘. Sul sistema Ubuntu, il server web Nginx viene eseguito come utente ‘ www-data ‘.

sudo chown -R www-data:www-data /var/www/newsite

Successivamente, esegui il seguente comando dell’editor nano per creare una nuova configurazione del blocco del server ‘/etc/nginx/sites-available/newsite’.

sudo nano /etc/nginx/sites-available/newsite

Inserisci la configurazione sottostante, assicurati di cambiare l’opzione server_name con il tuo nome di dominio e la directory web-root nel nuovo percorso come ‘ /var/www/newsite/public_html ‘.

server {  
   listen 80;  
   server_name newsite.com;  
  
   root /var/www/newsite/public_html;  
   index index.html;  
  
   location ~ \.php$ {  
     include snippets/fastcgi-php.conf;  
     fastcgi_pass unix:/run/php/php8.3-fpm.sock;  
   }  
  
   location / {  
     try_files $uri $uri/ =404;  
   }  
}

Quando hai finito, salva ed esci dal file.

Ora esegui il comando sottostante per attivare la configurazione del blocco del server ‘ newsite ‘. Con questo comando, creerai un nuovo collegamento simbolico del file ‘ /etc/nginx/sites-available/newsite ‘ nella directory ‘ /etc/nginx/sites-enabled/ ‘.

sudo ln -s /etc/nginx/sites-available/newsite /etc/nginx/sites-enabled/

Dopo che il blocco del server è stato attivato, esegui il comando ‘ nginx ‘ sottostante per controllare la sintassi di Nginx.

sudo nginx -t

Se non ci sono errori, dovresti ricevere l’output ‘ … syntax is ok / … test is successful ‘.

Infine, esegui il comando sottostante per riavviare il server web Nginx e applicare la tua nuova configurazione del blocco del server. Con questo, la tua configurazione del blocco del server dovrebbe essere accessibile dalla tua macchina locale.

sudo systemctl restart nginx

create server block

Test della configurazione del blocco del server

Per garantire che la configurazione del blocco del server Nginx sia riuscita, accederai al nome di dominio della tua configurazione del blocco del server dal tuo computer locale. Se stai utilizzando il nome di dominio pubblico, visita direttamente il nome di dominio. Ma per gli utenti del dominio locale, modifica il file ‘hosts’ sul tuo computer locale.

  • Per gli utenti Linux e MacOS, modifica il file ‘ /etc/hosts ‘ come root/privilegi amministrativi.
  • Per gli utenti Windows, modifica il file ‘ C:\Windows\System32\drivers\etc\hosts ‘ come amministratore.

Aggiungi il tuo indirizzo IP del server e il nome di dominio come segue:

192.168.5.30 newsite.com

Salva il file ed esci.

Ora apri il tuo browser web e visita http://newsite.com/. Se la tua configurazione del blocco del server Nginx ha avuto successo, dovresti ottenere la pagina personalizzata ‘index.html’ che hai creato come segue:

nginx server block

Conclusione

Congratulazioni! Hai ora installato il LEMP Stack (Linux, Nginx, MySQL/MariaDB e PHP) su Ubuntu 24.04 “Noble Numbat”. Hai anche protetto l’installazione del server MariaDB e creato un blocco del server Nginx per ospitare più siti web.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.