Come installare il server LAMP su RHEL, CentOS, Rocky & AlmaLinux

A LAMP stack is a collection of four different software (Linux, Apache, MySQL, and PHP) that programmers or web developers use to create and deploy websites or applications.

Questo tutorial si concentrerà su come installare e configurare la famosa pila LAMP con PhpMyAdmin sull’ultima versione di RHEL e le distribuzioni basate su RHEL come CentOS, Oracle Linux, Rocky, e AlmaLinux.

Requisiti

A seconda della distribuzione utilizzata, utilizzare i seguenti collegamenti per eseguire un’installazione minima del sistema, utilizzando un indirizzo IP statico per la configurazione di rete.

Passaggio 1: Installare il server Web Apache

1. Dopo aver eseguito un’installazione minima del sistema e configurato l’interfaccia di rete del server con un indirizzo IP statico (Static IP Address), procedi con l’installazione del pacchetto binario del servizio Apache (httpd) fornito dalle repository ufficiali utilizzando il seguente comando yum (yum command).

# yum install httpd
Install Apache on Linux

2. Terminata l’installazione di Apache (Apache), utilizza i seguenti comandi per gestire il demone Apache poiché RHEL (RHEL) e CentOS hanno entrambi spostato i loro script di init (init) da SysV (SysV) a Systemd (Systemd) – Perché init è stato sostituito con Systemd in Linux?.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Manage Apache in Linux

3. Nel passaggio successivo, assicurati di consentire l’accesso ad Apache aprendo le porte 80 (80) e 443 (443) sul firewall utilizzando il comando firewall-cmd (firewall-cmd), che è il comando predefinito per gestire Firewalld (Firewalld) attraverso il demone.

# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# systemctl restart firewalld
NOTE: Make notice that using this rule will lose its effect after a system reboot or firewalld service restart because it opens on-fly rules, which are not applied permanently.

Per applicare regole coerenti iptables sul firewall utilizzando l’opzione --permanent e riavviare il servizio firewalld per far entrare in vigore le modifiche.

# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# systemctl restart firewalld
Open Apache Ports in Firewalld

Alcuni importanti comandi Firewalld per gestire il firewall come presentato di seguito:

# firewall-cmd --state
# firewall-cmd --list-all
# firewall-cmd --list-interfaces
# firewall-cmd --get-service
# firewall-cmd --query-service service_name
# firewall-cmd --add-port=80/tcp

4. Per verificare la funzionalità Apache apri un browser remoto e digita l’indirizzo IP del tuo server utilizzando il protocollo HTTP nella URL, e dovrebbe apparire una pagina predefinita come nello screenshot qui sotto.

http://server_IP
Verify Apache in Linux

5. Per ora, il percorso DocumentRoot di Apache è impostato sul percorso del sistema /var/www/html, che per impostazione predefinita non fornisce alcun file indice. Se vuoi vedere un elenco di directory del tuo percorso DocumentRoot.

Apri il file di configurazione welcome di Apache e imposta la dichiarazione Indexes da a + sulla direttiva LocationMatch, utilizzando lo screenshot qui sotto come esempio.

# vi /etc/httpd/conf.d/welcome.conf
Configure Apache Welcome Page

6. Dopo aver apportato le modifiche, chiudi il file, riavvia il servizio Apache per riflettere le modifiche e ricarica la pagina del tuo browser per vedere il risultato finale.

# systemctl restart httpd
Apache Directory Listing

Passo 2: Installare il supporto PHP per Apache

7. Prima di installare il supporto alla lingua dinamica PHP per Apache, ottieni un elenco completo dei moduli e delle estensioni PHP disponibili utilizzando il seguente comando.

# yum search php
List PHP Modules

8. A seconda del tipo di applicazioni che vuoi utilizzare, installa i moduli PHP richiesti dall’elenco sopra, ma per un supporto di base MySQL/MariaDB in PHP e PhpMyAdmin devi installare i seguenti moduli.

# yum install php php-mysql php-pdo php-gd php-mbstring
Install PHP Modules

9. Per ottenere un elenco completo delle informazioni su PHP dal tuo browser, crea un file info.php nella Root del Documento Apache usando il seguente comando, riavvia il servizio httpd e indirizza il tuo browser all’indirizzo http://server_IP/info.php.

# echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# systemctl restart httpd
List PHP Information

10. Se si verifica un errore su PHP Data e Timezone, apri il file di configurazione php.ini, cerca e decommenta l’istruzione date.timezone, aggiungi la tua posizione fisica e riavvia il demone Apache.

# vi /etc/php.ini

Trova e cambia la riga date.timezone per assomigliare a questa, utilizzando la lista dei Fusi Orari Supportati da PHP.

date.timezone = Continent/City
Set PHP Timezone

Fase 3: Installa e Configura il Database MariaDB

11. La distribuzione RHEL è passata da MySQL a MariaDB per il suo sistema di gestione di database predefinito. Per installare il database MariaDB usa il seguente comando.

# yum install mariadb-server mariadb
Install MariaDB on Linux

12. Dopo che il pacchetto MariaDB è installato, avvia il demone del database e utilizza lo script mysql_secure_installation per proteggere il database (imposta una password di root, disabilita il login remoto dalla root, rimuovi il database di test e rimuovi gli utenti anonimi).

# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb
# mysql_secure_installation
Manage MariaDB Service
Secure MariaDB in Linux

13. Per testare la funzionalità del database accedi a MariaDB utilizzando il suo account root ed esci utilizzando un’istruzione quit.

mysql -u root -p
MariaDB > show databases;
MariaDB > quit
Connect MariaDB to Linux

Passaggio 4: Installare PhpMyAdmin per gestire MySQL

14. Di default i repository ufficiali non forniscono pacchetti binari per l’interfaccia web di PhpMyAdmin. Se non ti senti a tuo agio nell’utilizzare la linea di comando di MySQL per gestire il tuo database, puoi installare il pacchetto PhpMyAdmin abilitando il repository remi con il seguente comando.

# yum install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm  [On CentOS/RHEL 8]
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  [On CentOS/RHEL 8]
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm  [On CentOS/RHEL 7]

Dopo aver abilitato il repository remi, installa PhpMyAdmin.

# yum install phpmyadmin
Install PhpMyAdmin on Linux

15. Successivamente, configura PhpMyAdmin per consentire connessioni da host remoti modificando il file phpmyadmin.conf, situato nella directory conf.d di Apache, commentando le seguenti righe.

# vi /etc/httpd/conf.d/phpMyAdmin.conf

Aggiungi la riga “Require all granted” sotto la riga “Require local”, come mostrato.

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   Require local
   Require all granted
</Directory>
Allow Remote PhpMyAdmin Access

16. Per poter accedere all’interfaccia web di PhpMyAdmin, riavvia il servizio Apache Web e apri il tuo browser all’indirizzo URL.

# systemctl restart httpd

http://server_IP/phpmyadmin/
PhpMyAdmin Dashboard

Passaggio 5: Abilita LAMP a livello di sistema in Linux

17. Se hai bisogno che i servizi MariaDB e Apache si avviino automaticamente dopo un riavvio, esegui i seguenti comandi per abilitarli a livello di sistema.

# systemctl enable mariadb
# systemctl enable httpd

Ecco tutto ciò che serve per una semplice installazione LAMP su distribuzioni basate su RHEL. La prossima serie di articoli correlati allo stack LAMP discuterà su come creare Host Virtuali, generare Certificati SSL e Chiavi, e aggiungere supporto per transazioni SSL per Apache HTTP Server.

Source:
https://www.tecmint.com/install-lamp-server-linux/