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
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
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 nginxDovresti vedere che il servizio Nginx è ‘ abilitato ‘ e lo stato attuale è ‘ attivo (in esecuzione) ‘.

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
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:

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
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 mariadbIl servizio MariaDB è ‘ abilitato ‘ con lo stato attuale ‘ attivo (in esecuzione) ‘.

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-installationOra 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
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-fpmCome puoi vedere qui sotto, PHP-FPM è ‘ attivo (in esecuzione) ‘ e ‘ abilitato ‘ all’avvio del sistema:

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 phpNell’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/defaultDecommenta 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 -tSe hai una sintassi Nginx corretta, dovresti ricevere una conferma come la seguente:

Successivamente, esegui il comando sottostante per riavviare il servizio Nginx e applicare la tua integrazione tra Nginx e PHP-FPM.
sudo systemctl restart nginxCon 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.phpInfine, 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.

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

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

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.htmlOra 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/newsiteSuccessivamente, 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/newsiteInserisci 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 -tSe 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
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.comSalva 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:

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.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.