Tutorial > Come installare phpMyAdmin su Ubuntu 18.04

Come installare phpMyAdmin su Ubuntu 18.04

Pubblicato il: 26 novembre 2019

Database phpMyAdmin Web Hosting

PhpMyAdmin è un'interfaccia grafica che ti permette di creare, immagazzinare, modificare interi database creati con MySQL.

Per installare phpMyAdmin per prima cosa dovrai connetterti al tuo server mediante SSH. Se non l’hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con il protocollo SSH. In caso di server locale puoi passare al punto successivo e aprire il terminale del tuo server.

Installazione di phpMyAdmin

PhpMyAdmin è presente sulla repository standard di Ubuntu.

Per prima cosa aggiornare l'indice dei pacchetti presenti per poi scaricare e installare phpMyAdmin:

$ sudo apt update
$ sudo apt install phpmyadmin php-mbstring php-gettext
Conferman digitando Y e premendo Enter.

Ti apparirà quindi la seguente schermata:

Seleziona il Web Server da utilizzare

Qui dovrai selezionare Apache, ma fai attenzione: il trattino rosso non seleziona Apache 2. Per selezionarlo dovrai premere la barra spaziatrice e poi premere Enter. Se non premerai la barra spaziatrice non verranno trasferiti i file necessari per l'installazione.

Una volta premuto Enter, apparirà questa altra schermata:

pasted-image-0-1.png

Seleziona Yes e premi Enter.

Ti verrà ora chiesto di inserire una password per il database dell'amministratore. Inserisci una nuova password, premi TAB per selezionare Ok e infine premi Enter.

Imposta la password del database Ora dovrai inserire e confermare una password per l'applicazione.

Esattamente come prima inserisci una nuova password, premi TAB per selezionare Ok e poi premi Enter.

Inserisci una nuova password

Conferma la password appena inserita.

Conferma la passwordUna volta completata l'installazione, un file di configurazione di phpMyAdmin verrà aggiunto nel seguente percorso: 

 

/etc/apache2/conf-enabled/phpmyadmin.conf
L'unica cosa che dovrai fare sarà attivare l'estensione PHP mbstring. Per farlo digita:
$ sudo phpenmod mbstring

Per poter applicare tutte le modifiche riavvia Apache digitando:

$ sudo systemctl restart apache2

Gestire i metodi di accesso

Per utilizzare phpMyAdmin è consigliabile non usare l'utente creato automaticamente durante l'installazione, ma accedere come utente MySQL root oppure come utente abilitato alla gestione del database tramite interfaccia phpMyAdmin.

Puoi scegliere di configurare solo uno di questi due utenti o entrambi.

Configurare la password per l'utente root MySQL

L'accesso come utente root MySQL utilizza un'autenticazione auth_socket invece della semplice autenticazione tramite password.

Per poter accedere come root MySQL tramite phpMyAdmin dovrai cambiare il metodo di autenticazione.

Per farlo apri il prompt MySQL:

$ sudo mysql

Controlla i metodi di autenticazione per ogni utente MySQL digitando: 

SELECT user,authentication_string,plugin,host FROM mysql.user;

Verrà mostrata una lista di tutti i metodi di autenticazione per gli utenti MySQL, dove si potrà leggere che l'utente root presenta un tipo di autenticazione auth_socket.

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                         | auth_socket | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin       | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)

Per cambiare il tipo di autenticazione da auth_socket a mysql_native_password e quindi poter usare una password per accedere all'utente root digita:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'

Inserisci al posto di “password” una tua password, che dovrai ricordare e che rispetti i criteri minimi di sicurezza. Conferma i cambiamenti appena fatti digitando:

FLUSH PRIVILEGES;

In questo modo comunicherai al server di aggiornare il nuovo metodo di autenticazione per l'utente root.

Verifica se i cambiamenti sono stati salvati digitando nuovamente:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Se hai eseguito tutto correttamente, il metodo di autenticazione per l'utente root sarà cambiato e la schermata che vedrai sarà simile a questa:  

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *DE06E242B88EFB1FE4B5083587C260BACB2A6158 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *8486437DE5F65ADC4A4B001CA591363B64746D4C | mysql_native_password | localhost |
| phpmyadmin       | *5FD2B7524254B7F81B32873B1EA6D681503A5CA9 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)

Una volta fatto, potrai infine autenticarti nell'interfaccia phpMyAdmin come utente root utilizzando la password da te scelta. 

Creare un nuovo utente con cui accedere a phpMyAdmin

Se vuoi accedere a phpMyAdmin non come root ma come un utente creato specificatamente con questo scopo, non ti resta che creare uno. 

Per farlo dovrai riaccedere al prompt MySQL.

Nel caso tu abbia già configurato l'autenticazione tramite password per l'utente root dovrai digitare:

$ sudo mysql -u root -p

Se invece hai deciso di non utilizzare l'utente root digita: 

$ sudo mysql

Ora dovrai creare un nuovo utente, e quindi scegliere un nome e una password digitando: 

CREATE USER 'nomeutente'@'localhost' IDENTIFIED BY 'password'

Dove ovviamente dovrai sostituire 'nomeutente' e  'password' con quelli scelti da te.

Per poter dare al nuovo utente tutti i privilegi di cui ha bisogno, digita:

GRANT ALL PRIVILEGES ON *.* TO 'nomeutente'@'localhost' WITH GRANT OPTION;

Dopodichè esci dal prompt MySQL digitando:

exit

Accesso a phpMyAdmin per la prima volta

Per connetterti al server sarà sufficiente collegarsi a questo URL dal tuo browser:

http://IP-SERVER/phpmyadmin

Se l'indirizzo è corretto ti apparirà una schermata dove dovrai inserire username e password.

Da questa interfaccia grafica potrai accedere sia come root sia con il nuovo utente creato.

Login PhpMyAdmin

Se tutto è stato eseguito correttamente ti apparirà la dashboard di phpMyAdmin.

Dashboard di PhpMyAdminProtezione da attacchi esterni

PhpMyAdmin così configurato risulta particolarmente vulnerabile ad attacchi esterni di eventuali malintenzionati.

Il modo più semplice per evitare che questi attacchi vadano a buon fine è quello di inserire una porta di accesso all'intera applicazione utilizzando una funzione integrata di Apache che si chiama .htaccess.

Per configurare questa funzione accedi al file .conf nella directory apache.

Per farlo digita:

$ sudo nano /etc/apache2/conf-available/phpmyadmin.conf

All'interno del file .conf cerca la sezione :

<Directory /usr/share/phpmyadmin>

E aggiungi:

AllowOverride All

Una volta aggiunta la direttiva AllowOverride All salva e chiudi il file .conf non ti resta che riavviare Apache per rendere effettivi i cambiamenti. Per farlo digita:

$ sudo systemctl restart apache2

Ora che hai abilitato l'utilizzo di .htaccess per la tua applicazione, devi crearne uno.
Il file dovrai crearlo nella directory dell'applicazione. 

Per farlo digita:

$ sudo nano /usr/share/phpmyadmin/.htaccess

E nel file dovrai scrivere:

AuthType Basic
AuthName "File riservati"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Questo file semplicemente creerà una finestra di dialogo per l'autenticazione.

Il “titolo” della finestra di dialogo sarà "File riservati", puoi cambiare questo nome a piacimento. Il consiglio è quello di dare un nome che non sia troppo specifico per far si che un eventuale utente malevolo non sia troppo interessato a voler aggirare questa protezione.

Salva il file e chiudilo. Ora dovrai creare un file per la password. 

Per crearlo digita:

$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd nomeutente

Sostituendo al posto di “nomeutente” un nome a tua scelta.

Questa istruzione ti chiederà di scegliere e confermare una password. Una volta fatto, verrà creato un file con la password in /etc/phpmyadmin/.htpasswd.

D'ora in poi prima di accedere a phpMyAdmin ti verranno chiesti ulteriori username e password, così da rendere l'accesso più sicuro.

Autenticazione per la dashboard di PhpMyAdmin

Una volta inserito l'username e la password verrai portato alla normale finestra di login di phpMyAdmin dove inserire le tue credenziali MySQL.