Come installare PhpMyAdmin con Apache nei sistemi RHEL

In questo articolo, ti guideremo attraverso il processo passo-passo di installazione della versione più recente di PhpMyAdmin con il server web Apache su distribuzioni basate su RHEL come CentOS Stream, Fedora, Rocky Linux, e Alma Linux.

Cos’è PhpMyAdmin?

PhpMyAdmin è uno strumento web-based di gestione del database popolare e potente, e avere la versione più recente garantisce che tu abbia accesso alle funzionalità più aggiornate e miglioramenti di sicurezza. Alla fine di questa guida, sarai in grado di gestire i tuoi database MySQL o MariaDB facilmente utilizzando PhpMyAdmin.

Prerequisiti

Prima di iniziare, assicurati di avere quanto segue:

  • Accesso a un RHEL, CentOS Stream, Fedora, Rocky Linux o AlmaLinux system.
  • Assicurati di poter accedere come utente root o di avere privilegi sudo per installare software.
  • Un LAMP stack esistente, che include Apache, MySQL/MariaDB e PHP. Se non hai LAMP, puoi seguire questi passaggi per configurarlo.

Passo 1: Aggiorna il Sistema

Prima di installare qualsiasi software, è fondamentale assicurarsi che il tuo sistema sia aggiornato eseguendo il seguente comando dnf.

sudo dnf update
Update Linux System

Questo aggiornerà tutti i pacchetti sul tuo sistema alle versioni più recenti.

Passo 2: Installa il Server Web Apache

PhpMyAdmin è uno strumento basato sul web, e per usarlo, devi installare il server web Apache utilizzando il seguente comando.

sudo dnf install httpd
Install Apache in Linux

Una volta installato, avvia il servizio Apache ed abilitalo per avviarlo all’avvio.

sudo systemctl start httpd
sudo systemctl enable httpd

Passo 3: Installa MariaDB o MySQL

Avrai anche bisogno di un server di database. Puoi scegliere di installare MariaDB o MySQL, ma in questo esempio andremo con MariaDB.

sudo dnf install mariadb-server
Install MariaDB in Linux

Una volta installato, avvia il servizio MariaDB ed abilitalo per avviarlo all’avvio.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Successivamente, proteggi la tua installazione di MariaDB eseguendo lo script, che ti chiederà di inserire una password per l’utente root, vieterà i login remoti per root e rimuoverà gli utenti anonimi. Rimuoverà anche il database di test, che di default può essere accessibile dagli utenti anonimi.

sudo mysql_secure_installation
Secure MariaDB in Linux

Passo 4: Installare PHP

PhpMyAdmin è costruito con PHP, quindi abbiamo bisogno di installare PHP e alcune estensioni richieste utilizzando il seguente comando.

sudo dnf install php php-mysqlnd php-json php-mbstring
Install PHP in Linux

Passo 5: Installare PhpMyAdmin

Ora, procediamo con l’installazione di PhpMyAdmin sul nostro sistema Linux navigando nella directory principale del server web /var/www/html come mostrato.

cd /var/www/html

Successivamente, scarica la versione più recente di PhpMyAdmin utilizzando il seguente comando wget come mostrato.

sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

Una volta scaricato, estrai l’archivio scaricato e rinomina la directory per comodità.

sudo tar -xvzf phpMyAdmin-latest-all-languages.tar.gz
sudo mv phpMyAdmin-*/ phpmyadmin

Crea un file di configurazione per PhpMyAdmin.

sudo cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php

Modifica il file di configurazione:

sudo nano /var/www/html/phpmyadmin/config.inc.php

Trova la seguente riga e imposta il tuo blowfish_secret:

$cfg['blowfish_secret'] = 'your_secret';

Salva ed esci dal file.

Passo 6: Aprire la porta Apache in firewalld

Per impostazione predefinita, Apache utilizza generalmente le porte 80 e 443 rispettivamente per HTTP e HTTPS. Per aprire le porte di Apache e consentire l’accesso a PhpMyAdmin sul tuo server, esegui:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

Questi comandi aggiungono una regola per consentire il traffico in ingresso sulla porta specificata e ricaricano il firewall per applicare le modifiche.

Passo 7: Riavvia il server Web Apache

Infine, riavvia Apache per applicare le modifiche:

sudo systemctl restart httpd

Passo 8: Accedi a PhpMyAdmin

Ora puoi accedere a PhpMyAdmin attraverso il tuo browser web navigando all’indirizzo IP del tuo server o al nome di dominio seguito da “/phpmyadmin” nella URL:

http://your_server_ip/phpmyadmin

Accedi utilizzando le tue credenziali MySQL o MariaDB.

PHPMyAdmin Login
PHPMyAdmin Dashboard

Passo 9: Consenti l’accesso esterno in PhpMyAdmin

Apri il file di configurazione PhpMyAdmin.

sudo vi /etc/httpd/conf/httpd.conf

Trova la sezione <Directory "/var/www/html"> o la sezione in cui è configurato il tuo PhpMyAdmin e aggiorna la direttiva Require per consentire l’accesso a tutti gli indirizzi IP a PhpMyAdmin.

<Directory "/var/www/html/phpmyadmin">
    ...
    Require all granted
    ...
</Directory>

La configurazione precedente consente l’accesso da qualsiasi indirizzo IP, ma se si desidera limitare l’accesso a specifici indirizzi IP, sostituire Require all granted con Require ip your_ip.

Riavviare Apache per applicare le modifiche.

sudo systemctl restart httpd

Ora, dovresti essere in grado di accedere a PhpMyAdmin dal mondo esterno utilizzando l’indirizzo IP del tuo server o il dominio.

http://your_server_ip/phpmyadmin

Ricorda, l’accesso aperto a PhpMyAdmin dal mondo esterno può rappresentare rischi per la sicurezza. Assicurati di avere un meccanismo di autenticazione robusto in atto e considera l’uso di HTTPS per la comunicazione criptata. Inoltre, limita l’accesso solo a indirizzi IP affidabili se possibile o proteggi l’URL di accesso a PhpMyAdmin.

Modifica l’URL di accesso a phpMyAdmin

L’URL di accesso predefinito per phpMyAdmin è prevedibile e spesso oggetto di attacchi da parte di attori malevoli che cercano di sfruttare le vulnerabilità. Modificare l’URL di accesso aggiunge un ulteriore livello di sicurezza, rendendo più difficile per gli utenti non autorizzati ottenere l’accesso all’interfaccia di gestione del database.

Per farlo, crea un file di configurazione /etc/httpd/conf.d/phpMyAdmin.conf.

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

Successivamente, aggiungi la seguente configurazione.

#Alias /phpMyAdmin /var/www/html/phpmyadmin
Alias /my /var/www/html/phpmyadmin

<Directory /var/www/htm/lphpmyadmin>
    AddDefaultCharset UTF-8

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
            # Additional IP or hostname-based access control can be added here
        </RequireAny>
    </IfModule>

    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from All
        Allow from 127.0.0.1
        Allow from ::1
        # Additional IP or hostname-based access control can be added here
    </IfModule>

</Directory>

Sostituisci /my con il tuo desiderato URL di accesso personalizzato. Salva le modifiche ed esci dal text editor.

Dopo aver apportato modifiche ai file di configurazione, riavvia Apache per applicare le modifiche:

systemctl restart httpd

Apri il tuo browser web e naviga alla nuova URL di accesso phpMyAdmin.

http://yourdomain.com/my/
phpMyAdmin Login URL

Configurazione di SSL per phpMyAdmin

Proteggere la comunicazione tra il server web Apache e phpMyAdmin è fondamentale per proteggere informazioni sensibili come credenziali di accesso e contenuto del database. Un modo efficace per ottenere ciò è configurare SSL (Secure Socket Layer) per phpMyAdmin su un server web Apache.

Per farlo, installa prima il modulo mod_ssl sul tuo server.

yum install httpd mod_ssl openssl

Successivamente, crea una directory per memorizzare il certificato e genera un certificato SSL auto-firmato e una chiave privata come mostrato.

mkdir /etc/httpd/ssl 
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
Create SSL Certificate for PhpMyAdmin

Dopo aver creato il certificato SSL e la chiave, apri il file di configurazione SSL di Apache.

vi /etc/httpd/conf.d/ssl.conf

Successivamente, aggiungi le seguenti righe al file di configurazione.

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Salva le modifiche e riavvia il server web Apache.

systemctl restart httpd

Ora, apri il file di configurazione di phpMyAdmin.

vi /var/www/html/phpmyadmin/config.inc.php

Aggiungi le seguenti righe per forzare SSL per phpMyAdmin.

$cfg['ForceSSL'] = true;

Salva le modifiche ed esci dal text editor.

Infine, apri il tuo browser web e naviga alla seguente URL per accedere a phpMyAdmin tramite una connessione SSL sicura.

https://yourdomain.com/my/

Si prega di tenere presente che il messaggio che indica una connessione non sicura è dovuto esclusivamente all’utilizzo di un certificato auto-firmato. Per procedere, fai clic su “Advanced” e conferma l’eccezione di sicurezza.

SSL Warning
Secure phpMyAdmin Login
Conclusion

Congratulazioni! Hai installato con successo PhpMyAdmin con Apache sul tuo sistema RHEL, CentOS Stream, Rocky Linux o AlmaLinux. Questo strumento basato sul web semplifica la gestione dei tuoi database, rendendo facili compiti come la creazione di database, le query e la gestione dei dati.

Source:
https://www.tecmint.com/install-phpmyadmin-rhel-centos-fedora-linux/