Ubuntu 18.04 Server / Come Installare phpMyAdmin

Per installare phpMyAdmin su Ubuntu 18.04 Server, prepara Apache, PHP e MySQL o MariaDB, poi installa il pacchetto phpmyadmin e accedi con un account del database. Prima dell'installazione, limita i percorsi di accesso in modo che lo strumento di amministrazione non sia esposto esternamente e non modificare le impostazioni di autenticazione per il root del database.

Cose da Verificare Prima dell'Installazione

phpMyAdmin è uno strumento per gestire database e tabelle MySQL o MariaDB tramite un browser web. Questo articolo descrive il caso dell'uso di Apache su un server Ubuntu 18.04 esistente. Se stai usando un server web e un server di database separati o utilizzando Nginx, il percorso di connessione e le impostazioni saranno diversi.

La manutenzione standard della sicurezza per Ubuntu 18.04 LTS è terminata a maggio 2023. Per i sistemi esistenti, si consiglia di aggiornare a una versione di Ubuntu supportata. Se non puoi aggiornare immediatamente, verifica se è applicata la manutenzione della sicurezza di Ubuntu Pro e l'ambito degli aggiornamenti per phpMyAdmin, PHP e pacchetti del database. Per ulteriori dettagli, consulta Guida alla manutenzione della sicurezza di Ubuntu.

L'esempio seguente presuppone che tu abbia i privilegi sudo e abbia già installato Apache, PHP e MySQL o MariaDB, e che possa accedere al server tramite SSH. Esegui il backup del tuo database e controlla i repository dei pacchetti e le configurazioni dei siti esistenti prima dell'installazione. Poiché le impostazioni di Apache possono essere applicate automaticamente durante l'installazione, limita prima l'accesso da fonti esterne utilizzando un firewall o una rete privata.

Limitare il Percorso di Gestione in Apache

L'esempio seguente mostra come connettersi direttamente ad Apache e consentire solo connessioni locali al server. Per prima cosa, crea il file /etc/apache2/conf-available/phpmyadmin-local.conf e salva il seguente contenuto.

<Location /phpmyadmin>
    Require local
</Location>

Dopo aver attivato le impostazioni, verifica la sintassi e ricarica Apache solo se viene superata correttamente.

sudo a2enconf phpmyadmin-local
sudo apache2ctl configtest

Quando viene visualizzato Syntax OK, eseguire il comando seguente. Se ci sono errori, modificare le impostazioni e ricontrollare.

sudo systemctl reload apache2

Questa configurazione si applica al percorso di esempio. Se hai altri alias o host virtuali, controlla anche quei percorsi. Se davanti c'è un proxy inverso, Apache potrebbe vedere l'indirizzo del proxy come l'indirizzo del client, quindi le restrizioni di accesso non possono essere garantite solo con questo esempio. Esamina separatamente la gestione degli indirizzi client effettivi dai proxy attendibili e dal firewall. Puoi controllare la direttiva Require nella documentazione sul controllo degli accessi di Apache.

Installazione di phpMyAdmin

Aggiorna l'elenco dei pacchetti e installalo. La disponibilità dei pacchetti e le versioni possono variare a seconda del repository e delle impostazioni di manutenzione della sicurezza.

sudo apt update
sudo apt install phpmyadmin

Quando viene visualizzata una schermata di installazione interattiva, controlla quanto segue:

  1. Nella schermata di selezione del server web, scegli Apache2. Assicurati che sia selezionato prima di procedere. Premere semplicemente Invio potrebbe non selezionare l'elemento.
  2. Se viene chiesto della configurazione dbconfig-common, seleziona Sì se vuoi che il pacchetto configuri un database per le funzionalità aggiuntive di phpMyAdmin. Questo database è diverso dai database dell'applicazione che stai gestendo. Se prevedi di gestire tu stesso le impostazioni esistenti, puoi scegliere No.
  3. Nella schermata che richiede una password, controlla l'account e lo scopo visualizzati, e inserisci una password sicura. L'autenticazione dell'amministratore del database richiesta durante il processo di configurazione può variare a seconda del metodo di autenticazione del server esistente.

Dopo l'installazione, controlla i file di configurazione e se il servizio Apache è attivo. Le impostazioni per il pacchetto Ubuntu si trovano principalmente in /etc/phpmyadmin e possono variare a seconda della configurazione del pacchetto.

ls /etc/phpmyadmin
systemctl status apache2 --no-pager

Accesso tramite tunnel SSH

Apri il client SSH sul PC dell'amministratore ed esegui il seguente comando. Sostituisci user e server con l'effettivo account SSH e l'indirizzo del server. Connette la porta 8080 sul PC dell'amministratore alla porta locale 80 del server e può essere utilizzato finché la connessione SSH è attiva.

ssh -L 127.0.0.1:8080:127.0.0.1:80 user@server

Apri http://127.0.0.1:8080/phpmyadmin nel browser sullo stesso PC. Il browser e il client SSH devono essere eseguiti sullo stesso PC, e Apache sul server deve servire il percorso sulla porta locale 80. Quando appare la schermata di login, inserisci il nome utente e la password del database autorizzati. Terminare la sessione SSH chiuderà anche il tunnel.

Se il tuo ambiente è configurato per l'accesso diretto tramite HTTPS, è necessario un certificato TLS valido e restrizioni di accesso separate. Imposta gli IP consentiti nel tuo firewall o in Apache secondo l'indirizzo effettivo dell'amministratore e verifica i risultati dell'accesso sia dagli indirizzi consentiti che da quelli non consentiti. Si raccomanda di non esporre la pagina di amministrazione all'intero internet.

Account di accesso e autorizzazioni

Il login di phpMyAdmin viene autenticato utilizzando un account MySQL o MariaDB. Utilizza un account dedicato con permessi solo per i database e le operazioni necessarie alle tue attività. L'host e i permessi dell'account devono corrispondere alle impostazioni sul server database effettivo. Ricontrolla il destinatario e il backup prima di caricare file o apportare modifiche ai dati.

L'account root di Linux e l'account root del database sono diversi. Se il root del database è configurato per l'autenticazione tramite socket locale, potrebbe non essere utilizzabile per il login web. Non tentare di risolvere questo modificando direttamente le tabelle di sistema o svuotando il plugin di autenticazione del root. Crea un account separato con le autorizzazioni richieste e segui la documentazione sulla gestione degli account per quel prodotto database.

Quando non è possibile connettersi

  • 403 Vietato: Verifica se sono applicate restrizioni di accesso e se stai utilizzando un tunnel SSH. Controlla anche l'indirizzo del client riconosciuto dal proxy e da Apache.
  • 404 Non Trovato: Assicurati che Apache2 sia stato selezionato durante l'installazione e che la configurazione di Apache per phpMyAdmin sia abilitata. Se stai usando altri host virtuali o alias, controlla anche quelle impostazioni.
  • Accesso Fallito: Verifica il nome utente del database, la password, l'host di connessione e i permessi. L'account del server web o l'account SSH possono essere diversi dall'account del database.
  • Errore Pagina PHP: Controlla l'integrazione di Apache e PHP, le estensioni PHP richieste e i log degli errori di Apache. I percorsi di installazione e configurazione possono variare a seconda del pacchetto di distribuzione.

Se è necessario annullare le modifiche alla configurazione, ripristinare da un backup esistente e ricontrollare la sintassi. Disabilitare le impostazioni di restrizione locale in questo articolo potrebbe esporre il percorso di amministrazione all'accesso esterno a causa di altre configurazioni, quindi prima assicurarsi che siano applicati controlli di accesso alternativi. Per l'installazione e le impostazioni di sicurezza di phpMyAdmin, fare riferimento alla documentazione ufficiale di installazione.