Guida: Come Installare LAMP in Red Hat RHEL 10 How To
In questa guida vediamo come installare LAMP in Red Hat RHEL 10 utilizzando dnf, il gestore di pacchetti di default e come creare i certificati SSL/TLS per abilitare l'HTTPS sul web server
Nei nostri interventi di Consulenza e Assistenza Linux professionale, 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 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 Red Hat RHEL 10
1. Installare Apache2
Di default, è previsto il modulo multi-processi mpm_prefork, che permette di utilizzare mod_php o php8.0, 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 dnf install httpdAssicuriamoci che il modulo
mpm_event_modulesia in uso per assicurarci migliori prestazioni.sudo grep mpm_event_module /etc/httpd/conf.modules.d/00-mpm.confSe non viene visualizzato nulla editiamo il file
/etc/httpd/conf.modules.d/00-mpm.confin modo che la lineaLoadModulerisulti come la seguente, per caricarempm_eventLoadModule mpm_event_module modules/mod_mpm_event.so
Controlliamo allo stesso modo precedente che sia attivo
http2.sudo grep http2_module /etc/httpd/conf.modules.d/10-h2.confNel caso non lo sia editiamo il file
/etc/httpd/conf.modules.d/10-h2.confcome sotto:LoadModule http2_module modules/mod_http2.so
Riavviamo Apache2.
sudo systemctl restart httpdAssicuriamoci che Apache2 sia abilitato all'avvio
sudo systemctl enable httpd sudo systemctl start httpdControlliamo che sia attivo Apache2
httpdsudo systemctl status httpd● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2026-03-16 08:57:10 UTC; Main PID: 74751 (httpd)Permettiamo il traffico HTTP e HTTPS attraverso il firewall
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
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 dnf install php php-fpmRiavviamo il processo di PHP FPM.
sudo systemctl restart php-fpmRiavviamo Apache2.
sudo systemctl restart httpd
Configurazione Virtual Host PHP-FPM
È ora possibile configurare tutti i virtual host di Apache2 per utilizzare FPM con il modello sotto, o crearne nuovi all'interno di /etc/httpd/conf.d/ utilizzando un nome che termina in .conf, partendo dal questo esempio:
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.mydomain.ext
# Other directives here
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler "proxy:unix:/run/php-fpm/www.sock"
</FilesMatch>
</VirtualHost>Ora possiamo testare il web server e PHP creando il file /var/www/html/info.php:
<?php
phpinfo();
phpinfo(INFO_MODULES);
?>Installiamo i moduli necessari e PHP-MySQL. Possiamo scegliere di installare anche alcuni dei più comuni moduli.
sudo dnf install php-pear \
php-{mysqlnd,gd,intl,snmp,xsl,pdo,mbstring}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 per generare i certificati SSL e TLS.
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpmsudo dnf install certbot python3-certbot-apacheAccettiamo la chiave se richiesto:
Importing GPG key 0xE37ED158:
Userid : "Fedora (epel10) <[email protected]>"
Fingerprint: 7D8D 15CB FC4E 6268 8591 FB26 33D9 8517 E37E D158
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-10Installiamo Let's Encrypt certbot
sudo dnf install certbot python3-certbot-apacheRiavviamo Apache2 httpd per permettergli di generare i certificati auto firmati
sudo systemctl restart httpdCreiamo 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 grep certbot /etc/cron.d/ -RSe 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 creando un file nella directory /etc/httpd/conf.d
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler "proxy:unix:/run/php-fpm/www.sock"
</FilesMatch>
</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:unix:/run/php-fpm/www.sock"
</FilesMatch>
</VirtualHost>4. Installare database MySQL compatibile: MariaDB
Per installare un database MySQL compatibile, nello specifico MariaDB, utilizziamo il pacchetto mariadb-server.
sudo dnf install mariadb-serverPer una configurazione dettagliata, potete fare riferimento alla nostra guida all'installazione e configurazione di MySQL per CentOS Stream 9.
La gestione Red Hat al tuo servizio
Vuoi un supporto esperto, proattivo e costante? Prova i nostri servizi di Consulenza e Assistenza Red Hat professionale!
Conclusione
Siamo riusciti a installare LAMP in Red Hat RHEL 10, 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.