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 unzip

Una 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 mariadb

Una 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_installation

Rispondi 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.zip

Una volta scaricato, estrai il file scaricato con il seguente comando:

unzip phpMyAdmin-4.9.2-all-languages.zip

Successivamente, sposta il contenuto estratto nella directory /usr/share come mostrato di seguito:

mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin

Successivamente, 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.php

Successivamente, apri il file con il tuo editor di testo preferito come mostrato di seguito:

nano config.inc.php

Cambia 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 -p

Fornisci 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/tmp

Configura 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.conf

Aggiungi 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 httpd

Puoi controllare lo stato di Apache con il seguente comando:

systemctl status httpd

Dovresti 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-utils

Successivamente, 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 --reload

phpMyAdmin è 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:

Login di PHPMyAdmin

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.conf

Trova 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 admin

Ti 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.conf

Aggiungi 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 httpd

Accedi 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:

phpMyAdmin Sicuro

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

Accedi come utente root a phpMyAdmin

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

Dashboard del database phpMyAdmin

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.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.