Salta al contenuto principale

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.

  1. Installiamo Apache2

    sudo apt install apache2
  2. Assicuriamoci che il modulo mpm_prefork sia disattivato, poiché rappresenta un collo di bottiglia per le prestazioni.

    sudo a2dismod mpm_prefork
  3. Abilitiamo mpm_event e http2.

    sudo a2enmod mpm_event http2
  4. 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.

  1. Installiamo FPM e FastCGI.

    sudo apt install php-fpm
  2. Abilitiamo i moduli.

    sudo a2enmod actions proxy_fcgi alias headers
  3. Riavviamo il processo di PHP FPM.

    sudo service php8.3-fpm restart
  4. 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.

  1. 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}
  2. 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.

  1. Per installare MySQL server:

    sudo apt install mysql-server
  2. 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.

Aggiungi un commento

Comment

  • Elementi HTML permessi: <br> <p> <code class="language-*"> <pre>
  • Linee e paragrafi vanno a capo automaticamente.
  • Solo le immagini ospitate su questo sito possono essere utilizzate nel tag <img>.