phpMyAdmin è un'applicazione PHP open source progettata per gestire l'amministrazione di server MySQL e MariaDB su un'interfaccia basata sul web.
phpMyAdmin ti consente di gestire database MySQL, account utente e privilegi, eseguire istruzioni SQL, importare ed esportare dati in una varietà di formati di dati e molto altro.
Questo tutorial illustra i passaggi necessari per l'installazione e la protezione di phpMyAdmin con Apache su Ubuntu 18.04.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:
- Avere LAMP (Linux, Apache, MySQL e PHP) installato sul tuo server Ubuntu.
- Acceduto come utente con privilegi sudo.
Sebbene non sia necessario, si consiglia di accedere all'installazione di phpMyAdmin tramite HTTPS. Se il tuo dominio non è già protetto da SSL puoi seguire questa guida e proteggere il tuo Apache con Let's Encrypt su Ubuntu 18.04.
Installazione di phpMyAdmin #
Per installare phpMyAdmin sul tuo server Ubuntu 18.04, segui questi passaggi:
-
Aggiorna l'indice del pacchetto e aggiorna i pacchetti di sistema alle versioni più recenti:
sudo apt update && sudo apt upgrade
-
Installa il pacchetto phpMyAdmin dai repository Ubuntu predefiniti con il seguente comando:
sudo apt install phpmyadmin
Il programma di installazione ti chiederà di scegliere il server web che dovrebbe essere configurato automaticamente per eseguire phpMyAdmin, scegli apache premendo
Space
e poiEnter
.Successivamente, ti verrà chiesto se utilizzare
dbconfig-common
per configurare il database, selezionareYes
e premiEnter
.Inserisci una password per phpMyAdmin per registrarsi al database, seleziona
OK
e premiEnter
.Ti verrà chiesto di confermare la password, inserire la stessa password, selezionare
OK
e premiEnter
. -
Una volta completato il processo di installazione, riavvia Apache per rendere effettive le modifiche:
sudo systemctl restart apache2
Crea un utente MySQL amministrativo #
Nei sistemi Ubuntu che eseguono MySQL 5.7 (e versioni successive), l'utente root è impostato per utilizzare auth_socket
metodo di autenticazione predefinito.
Il auth_socket
plugin autentica gli utenti che si connettono da localhost tramite il file socket Unix. Ciò significa che non puoi autenticarti come root fornendo una password.
Invece di modificare il metodo di autenticazione per l'utente MySQL root, creeremo un nuovo utente MySQL amministrativo. Questo utente avrà gli stessi privilegi dell'utente root e sarà impostato per utilizzare il mysql_native_password
metodo di autenticazione.
Utilizzeremo questo utente per accedere alla dashboard di phpMyAdmin ed eseguire attività amministrative sul nostro server MySQL o MariaDB.
Inizia accedendo al server MySQL come utente root:
sudo mysql
Dall'interno della shell MySQL, esegui i seguenti comandi che creeranno un nuovo utente amministrativo e garantiranno le autorizzazioni appropriate:
CREATE USER 'padmin'@'localhost' IDENTIFIED BY 'super-strong-password';
GRANT ALL PRIVILEGES ON *.* TO 'padmin'@'localhost' WITH GRANT OPTION;
Nel nostro esempio abbiamo chiamato l'utente amministrativo padmin
. Puoi usare qualsiasi nome tu voglia, assicurati solo di impostare una password complessa.
Accesso a phpMyAdmin #
Per accedere all'interfaccia di phpMyAdmin apri il tuo browser preferito e digita il nome di dominio del tuo server o l'indirizzo IP pubblico seguito da /phpmyadmin
:
https://your_domain_or_ip_address/phpmyadmin
Inserisci le credenziali di accesso dell'utente amministrativo che hai creato in precedenza e fai clic su Go
.
Una volta effettuato l'accesso, vedrai la dashboard di phpMyAdmin, che avrà un aspetto simile a questo:
Protezione di phpMyAdmin #
Per aggiungere un ulteriore livello di sicurezza, proteggeremo con password la directory phpMyAdmin impostando un'autenticazione di base.
Per prima cosa creeremo un file di password con gli utenti usando htpasswd
strumento fornito con il pacchetto Apache. Conserveremo il .htpasswd
file in /etc/phpmyadmin
directory:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd padmin
In questo esempio stiamo creando un utente chiamato padmin
. Puoi scegliere qualsiasi nome utente, non deve essere lo stesso dell'utente MySQL amministrativo.
Il comando sopra ti chiederà di inserire e confermare la password dell'utente.
New password:
Re-type new password:
Adding password for user padmin
Se vuoi aggiungere un altro utente, puoi usare lo stesso comando senza il -c
bandiera:
sudo htpasswd /etc/phpmyadmin/.htpasswd padmin2
Il passaggio successivo è configurare Apache per proteggere con password la directory phpMyAdmin e utilizzare il .htpasswd
file.
Per farlo, apri il phpmyadmin.conf
file che è stato creato automaticamente durante l'installazione di phpMyAdmin:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
E modifica/inserisci le seguenti righe evidenziate in giallo:
/etc/apache2/conf-available/phpmyadmin.conf<Directory /usr/share/phpmyadmin>
Options +FollowSymLinks +Multiviews +Indexes # edit this line
DirectoryIndex index.php
AllowOverride None
AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
<IfModule mod_php5.c>
...
Salva e chiudi il file e riavvia Apache per rendere effettive le modifiche:
sudo systemctl restart apache2
Ora, quando accedi al tuo phpMyAdmin, ti verrà chiesto di inserire le credenziali di accesso dell'utente che hai creato in precedenza:
https://your_domain_or_ip_address/phpmyadmin
Dopo aver inserito l'autenticazione di base, verrai indirizzato alla pagina di accesso di phpMyAdmin dove devi inserire le credenziali di accesso dell'utente amministrativo MySQL.
È anche una buona idea cambiare il/phpmyadmin
alias a qualcosa di più unico e sicuro.