Come Installare LAMP in Ubuntu 25.04 Plucky Puffin
In questa guida vedremo come installare LAMP in Ubuntu 25.04 Plucky Puffin utilizzando apt, il gestore di pacchetti di default.
Introduzione
Nei nostri interventi di Assistenza Linux, gli stack LAMP (Linux, Apache, MySQL, PHP), LEMP (NginX) e simili, sono fondamentali per Web App, CMS ed e-commerce come WordPress, Magento, Drupal e molti altri.
Per installare LAMP in Ubuntu 25.04 Plucky Puffin iniziamo installando il web server Apache con HTTPS, il primo componente dello stack, che si occuperà di servire i contenuti.
Per ottimizzare le performance del web server, consigliamo di utilizzare PHP-FPM, mpm_event e HTTP2. La maggior parte dei siti web utilizza connessioni sicure. Vedremo anche come generare un certificato HTTPS valido e gratuito con Let's Encrypt.
Installare LAMP in Ubuntu 25.04
1. Installare Apache2
Di default, è previsto il modulo multi-processi mpm_prefork, che permette di utilizzare mod_php o php8.3, l'interprete interno. Questo approccio è sconsigliato per siti molto visitati, poiché arrivati al numero massimo di thread, il web server smette di rispondere fino alla liberazione di un thread.
Installiamo Apache2
sudo apt install apache2Assicuriamoci che il modulo
mpm_preforksia disattivato, poiché rappresenta un collo di bottiglia per le prestazioni.sudo a2dismod mpm_preforkAbilitiamo
mpm_eventehttp2.sudo a2enmod mpm_event http2Riavviamo Apache2.
sudo service apache2 restart
2. Installare PHP-FPM
PHP-FPM è un'implementazione alternativa di PHP FastCGI, nota per la velocità, tre volte superiore al classico modulo, con funzionalità aggiuntive. FPM è un vero e proprio demone che resta in ascolto per le richieste PHP tramite una porta o un socket UNIX. Rappresenta la P del nostro LAMP.
Installiamo FPM e FastCGI.
sudo apt install php-fpmAbilitiamo i moduli.
sudo a2enmod actions proxy_fcgi alias headersRiavviamo il processo di PHP FPM.
sudo service php8.4-fpm restartRiavviamo Apache2.
sudo service apache2 restart
Configurazione Virtual Host PHP-FPM
È ora possibile configurare tutti i virtual host di Apache2 per utilizzare FPM aggiungendo questo handler nella loro definizione:
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>Test di PHP con info.php:
<?php
phpinfo();
phpinfo(INFO_MODULES);
?>Installiamo i moduli necessari e PHP-MySQL.
Possiamo scegliere di installare alcuni dei più comuni moduli.
sudo apt-get install php-pear \ php8.4-{mysql,curl,gd,intl,imap,mcrypt,ps,pspell,snmp,sqlite,tidy,xmlrpc,xsl}In alternativa, possiamo usare i moduli presenti in Plesk.
sudo apt-get install php-pear \ php8.4-{bcmath,enchant,imap,ldap,mysql,curl,dba,enchant,gd,intl,ldap,mbstring,mcrypt,odbc,opcache,pgsql,sqlite3,pspell,soap,tidy,xml,xmlrpc,xsl,zip}
3. Installare Let's Encrypt per Certificati SSL gratuiti
Grazie a Let's Encrypt e al demone certbot, è possibile generare certificati SSL universalmente riconosciuti, sicuri e gratuiti. È necessario configurare il nome DNS del sito web in modo da raggiungere l'IP del nostro server.
Esempio di configurazione DNS
Per configurare il DNS, accediamo al pannello del nostro fornitore e creiamo un record di tipo "A".
mydomain.ext A 1.1.1.1Installiamo Let's Encrypt e generiamo i certificati SSL e TLS.
sudo apt-get install certbot python3-certbot-apacheCreiamo la configurazione di Apache2.
sudo certbot --apacheTestiamo il rinnovo dei certificati.
sudo certbot renew --dry-runControlliamo che sia presente il processo schedulato di Cron per il rinnovo.
sudo cat /etc/cron.d/certbotSe la risoluzione del nostro dominio è corretta, i nostri virtual host risponderanno in HTTPS, restituendoci il famoso "lucchetto verde" sul browser.
I Virtual Host di Apache2
Virtual Host HTTP
Per configurare un virtual host HTTP, possiamo utilizzare una definizione semplice come quella elencata di seguito. È disponibile nella directory /etc/apache2/sites-available come vhost di default, da cui possiamo partire.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>Virtual Host HTTPS
I virtual host HTTPS includono i percorsi necessari per l'utilizzo di SSL e l'attivazione di PHP.
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot "/var/www/data/online"
ServerName mydomain.ext
ServerAlias www.mydomain.ext
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Protocols h2 h2c http/1.1
SSLEngine on
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mydomain.ext/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.ext/privkey.pem
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>4. Installare MySQL o MariaDB
Per installare MySQL o MariaDB, utilizziamo i pacchetti corrispondenti mysql-server e mariadb-server.
Per installare MySQL server:
sudo apt install mysql-serverPer installare MariaDB (personalmente lo preferisco):
sudo apt install mariadb-server
Per una configurazione dettagliata, potete fare riferimento alla nostra guida all'installazione e configurazione di MySQL per Ubuntu 25.04.
Cerchi un supporto professionale?
Affidati a un nostro Consulente Linux, 30' di analisi del tuo sistema Gratis!
Conclusione
Siamo riusciti a installare LAMP in Ubuntu 25.04, ora il nostro server è pronto per ospitare un CMS o una Web App
Se hai trovato utile questa guida, condividila sui social, altri potrebbero averne bisogno.