phpMyAdmin è un'applicazione basata su PHP gratuita e open source progettata per semplificare l'amministrazione dei 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 un'ampia varietà di formati di dati e molto altro.
Questo tutorial descrive i passaggi necessari per installare e proteggere phpMyAdmin su Debian 9 con il server web Apache.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti requisiti prima di procedere con questo tutorial:
- Avere LAMP (Linux, Apache, MySQL e PHP) installato sul tuo server Debian.
- Acceduto come utente con privilegi sudo.
Sebbene sia opzionale, si consiglia di accedere all'installazione di phpMyAdmin tramite HTTPS. Se il tuo dominio non è già protetto da un SSL puoi seguire questa guida e proteggere il tuo Apache con Let's Encrypt su Debian 9.
Installazione di phpMyAdmin #
Eseguire i seguenti passaggi per installare phpMyAdmin su Debian 9:
-
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 Debian predefiniti digitando:
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
.Conferma la password, seleziona
OK
e premiEnter
. -
Al termine del processo di installazione, riavvia Apache per rendere effettive le modifiche:
sudo systemctl restart apache2
Creazione di un utente MySQL amministrativo #
Nei sistemi Debian che eseguono MariaDB 10.1 (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 root MySQL, 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:
Abbiamo chiamato l'utente amministrativoCREATE USER 'padmin'@'localhost' IDENTIFIED BY 'super-strong-password';
GRANT ALL PRIVILEGES ON *.* TO 'padmin'@'localhost' WITH GRANT OPTION;
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.