Come Installare LAMP in Ubuntu 24.04 Noble Numbat
In questa guida vedremo come installare LAMP in Ubuntu 24.04 Noble Numbat 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 24.04 Noble Numbat 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 24.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 apache2
Assicuriamoci che il modulo
mpm_prefork
sia disattivato, poiché rappresenta un collo di bottiglia per le prestazioni.sudo a2dismod mpm_prefork
Abilitiamo
mpm_event
ehttp2
.sudo a2enmod mpm_event http2
Riavviamo 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-fpm
Abilitiamo i moduli.
sudo a2enmod actions proxy_fcgi alias headers
Riavviamo il processo di PHP FPM.
sudo service php8.3-fpm restart
Riavviamo 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.3-{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.3-{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.1
Installiamo Let's Encrypt e generiamo i certificati SSL e TLS.
sudo apt-get install certbot python3-certbot-apache
Creiamo la configurazione di Apache2.
sudo certbot --apache
Testiamo il rinnovo dei certificati.
sudo certbot renew --dry-run
Controlliamo che sia presente il processo schedulato di Cron per il rinnovo.
sudo cat /etc/cron.d/certbot
Se 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-server
Per 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 24.04.
Conclusione
Siamo riusciti a installare LAMP in Ubuntu 24.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.