phpMyAdmin · 6 min read · Nov 06, 2025
Installa e Sicurezza di phpMyAdmin su CentOS 8

phpMyAdmin è uno strumento gratuito e open-source per gestire server MySQL e MariaDB tramite un’interfaccia web. Con phpMyAdmin, puoi creare e gestire database e utenti, eseguire istruzioni SQL, importare ed esportare dati e svolgere attività di database come creare, eliminare, tabelle, colonne, indici, permessi e molto altro. phpMyAdmin è uno degli strumenti di amministrazione più popolari e ampiamente utilizzati, specialmente per i servizi di hosting web.
Caratteristiche
Fornisce un’interfaccia web semplice e user-friendly.
Importa dati da CSV e SQL.
Supporta la maggior parte delle funzionalità di MySQL, inclusi creare, copiare, eliminare, rinominare, eliminare e modificare database, tabelle, campi e indici.
Ti consente di esportare dati in vari formati come PDF, CSV, SQL, XML e molti altri.
Gestione di più server.
Creazione di query complesse utilizzando Query-by-example (QBE).
In questo tutorial, ti mostreremo come installare e mettere in sicurezza phpMyAdmin su un server CentOS 8.
Requisiti
Un server che esegue CentOS 8.
Una password di root configurata sul server.
Installa il Server LAMP
Per prima cosa, dovrai installare Apache, MariaDB, PHP e altre librerie PHP sul tuo server. Puoi installarli tutti con il seguente comando:
dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzipUna volta installati tutti i pacchetti, avvia il servizio Apache e MariaDB e abilitali per avviarsi dopo il riavvio del sistema con il seguente comando:
systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadbUna volta terminato, puoi procedere al passaggio successivo.
Configura MariaDB
Per impostazione predefinita, MariaDB non è sicuro. Quindi dovrai prima metterlo in sicurezza. Puoi farlo eseguendo lo script mysql_secure_installation:
mysql_secure_installationRispondi a tutte le domande come mostrato di seguito:
Imposta la password di root? [Y/n] Y
Nuova password:
Rimuovi utenti anonimi? [Y/n] Y
Disabilita il login remoto per root? [Y/n] Y
Rimuovi il database di test e l'accesso ad esso? [Y/n] Y
Ricarica le tabelle dei privilegi ora? [Y/n] Y
Una volta terminato, dovresti vedere il seguente output:
... Successo!
Pulizia in corso...
Tutto fatto! Se hai completato tutti i passaggi sopra, la tua installazione di MariaDB
ora dovrebbe essere sicura.
Grazie per aver utilizzato MariaDB!
A questo punto, la tua installazione di MariaDB è sicura.
Installa phpMyAdmin
Per impostazione predefinita, phpMyAdmin non è disponibile nel repository predefinito di CentOS 8. Quindi, dovrai scaricare l’ultima versione di phpMyAdmin dal loro sito ufficiale. Puoi scaricarlo con il seguente comando:
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.zipUna volta scaricato, estrai il file scaricato con il seguente comando:
unzip phpMyAdmin-4.9.2-all-languages.zipSuccessivamente, sposta il contenuto estratto nella directory /usr/share come mostrato di seguito:
mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadminSuccessivamente, cambia la directory in /usr/share/phpmyadmin e rinomina il file config.sample.inc.php:
cd /usr/share/phpmyadmin
mv config.sample.inc.php config.inc.phpSuccessivamente, apri il file con il tuo editor di testo preferito come mostrato di seguito:
nano config.inc.phpCambia la seguente riga:
$cfg['blowfish_secret'] = 'your-secret-password';
Salva e chiudi il file quando hai finito. Quindi, importa il create_tables.sql con il seguente comando:
mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -pFornisci la tua password di root quando richiesto per importare la tabella.
Successivamente, crea una directory tmp per phpmyadmin e dai i permessi appropriati:
mkdir /usr/share/phpmyadmin/tmp
chown -R apache:apache /usr/share/phpmyadmin
chmod 777 /usr/share/phpmyadmin/tmpConfigura Apache per phpMyAdmin
Successivamente, dovrai creare un file di configurazione del virtual host Apache per phpMyAdmin. Puoi crearlo con il seguente comando:
nano /etc/httpd/conf.d/phpmyadmin.confAggiungi le seguenti righe:
Alias /phpmyadmin /usr/share/phpmyadmin
AddDefaultCharset UTF-8
# Apache 2.4
Require all granted
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
# Apache 2.4
Require all granted
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Apache con il seguente comando:
systemctl restart httpdPuoi controllare lo stato di Apache con il seguente comando:
systemctl status httpdDovresti vedere il seguente output:
? httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
??php-fpm.conf
Active: active (running) since Wed 2019-12-18 01:07:52 EST; 6s ago
Docs: man:httpd.service(8)
Main PID: 5636 (httpd)
Status: "Avviato, in ascolto su: porta 80"
Tasks: 213 (limit: 25044)
Memory: 28.7M
CGroup: /system.slice/httpd.service
??5636 /usr/sbin/httpd -DFOREGROUND
??5639 /usr/sbin/httpd -DFOREGROUND
??5640 /usr/sbin/httpd -DFOREGROUND
??5641 /usr/sbin/httpd -DFOREGROUND
??5642 /usr/sbin/httpd -DFOREGROUND
Dec 18 01:07:52 centos8 systemd[1]: Stopped The Apache HTTP Server.
Dec 18 01:07:52 centos8 systemd[1]: Starting The Apache HTTP Server...
Dec 18 01:07:52 centos8 httpd[5636]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:d0>
Dec 18 01:07:52 centos8 httpd[5636]: Server configured, listening on: port 80
Dec 18 01:07:52 centos8 systemd[1]: Started The Apache HTTP Server.
Configura SELinux e Firewall
Per impostazione predefinita, SELinux è abilitato in CentOS 8. Quindi dovrai configurare SELinux affinché phpMyAdmin funzioni correttamente.
Per prima cosa, installa il pacchetto policycoreutils-python-utils per gestire un ambiente SELinux con il seguente comando:
dnf install policycoreutils-python-utilsSuccessivamente, abilita l’accesso alla directory /usr/share/phpmyadmin con il seguente comando:
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"Ora ricorsivamente attraverso tutti i file nella tua directory phpmyadmin eseguendo il seguente comando:
restorecon -Rv '/usr/share/phpmyadmin/'Successivamente, dovrai creare una regola del firewall per consentire il servizio HTTP dalle reti esterne. Puoi consentirlo con il seguente comando:
firewall-cmd --permanent --add-service=http
firewall-cmd --reloadphpMyAdmin è ora installato e configurato. Ora è il momento di controllare se funziona o meno.
Apri il tuo browser web e digita l’URL http://your-server-ip/phpmyadmin. Sarai reindirizzato alla seguente pagina:

Metti in Sicurezza phpMyAdmin
A questo punto, l’istanza di phpMyAdmin funziona correttamente. Tuttavia, mettere in sicurezza la tua istanza di phpMyAdmin dal mondo esterno è un compito importante per te. In questa sezione, ti mostreremo come mettere in sicurezza la tua istanza di phpMyAdmin.
Consenti phpMyAdmin da IP Specifici
Per prima cosa, dovrai configurare il tuo phpMyAdmin per essere accessibile solo dall’indirizzo IP della tua connessione domestica.
Puoi configurarlo modificando il file /etc/httpd/conf.d/phpmyadmin.conf:
nano /etc/httpd/conf.d/phpmyadmin.confTrova le seguenti righe:
Require all granted
E sostituiscile con le seguenti:
Require ip your-home--connection-ip-address
Require ip ::1
Salva e chiudi il file quando hai finito.
Configura un Ulteriore Livello di Autenticazione
È una buona idea proteggere con password la tua directory phpmyadmin impostando un’autenticazione di base.
Per farlo, crea un nuovo file di autenticazione utilizzando lo strumento htpasswd come mostrato di seguito:
mkdir /etc/phpmyadmin
htpasswd -c /etc/phpmyadmin/.htpasswd adminTi verrà chiesto di fornire la tua password di amministratore come mostrato di seguito:
Nuova password:
Re-inserisci la nuova password:
Aggiunta password per l'utente admin
Successivamente, dovrai configurare Apache per utilizzare il file .htpasswd. Puoi farlo modificando il file /etc/httpd/conf.d/phpmyadmin.conf.
nano /etc/httpd/conf.d/phpmyadmin.confAggiungi le seguenti righe sotto la riga “AddDefaultCharset UTF-8”:
Options +FollowSymLinks +Multiviews +Indexes
AllowOverride None
AuthType basic
AuthName "Autenticazione Richiesta"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Salva il file e riavvia il servizio Apache affinché le modifiche abbiano effetto:
systemctl restart httpdAccedi a phpMyAdmin
Ora, la tua istanza di phpMyAdmin è protetta con un ulteriore livello di sicurezza. Apri il tuo browser web e digita l’URL http://your-server-ip/phpmyadmin. Ti verrà chiesto di inserire le credenziali di accesso dell’utente che hai creato in precedenza come mostrato di seguito:

Fornisci il tuo nome utente e password di amministratore, quindi fai clic sul pulsante OK. Sarai reindirizzato alla pagina di accesso di phpMyAdmin:

Ora, fornisci le tue credenziali di accesso dell’utente amministrativo MySQL e fai clic sul pulsante Vai. Dovresti vedere la seguente pagina:

Conclusione
Congratulazioni! hai installato e messo in sicurezza phpMyAdmin sul server CentOS 8. Ora puoi creare database, utenti, tabelle e gestirli dall’interfaccia web. Sentiti libero di chiedermi se hai domande.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.