Questo tutorial ti mostrerà come installare phpMyAdmin con Apache, MariaDB, PHP7.2 (stack LAMP) su Ubuntu 18.04 LTS. phpMyAdmin è uno strumento di gestione di database basato sul Web gratuito e open source scritto in PHP. Fornisce un'interfaccia web grafica per consentire agli utenti di gestire database MySQL o MariaDB. Impareremo anche come abilitare l'autenticazione a due fattori su phpMyAdmin.
phpMyAdmin consente agli amministratori di:
- sfogliare database e tabelle;
- crea, copia, rinomina, altera e rilascia database;
- crea, copia, rinomina, altera e rilascia tabelle;
- eseguire la manutenzione della tabella;
- aggiungi, modifica e rilascia campi;
- esegui qualsiasi istruzione SQL, anche query multiple;
- crea, modifica e rilascia indici;
- carica file di testo nelle tabelle;
- creare e leggere dump di tabelle o database;
- esporta i dati nei formati SQL, CSV, XML, Word, Excel, PDF e LaTeX;
- amministrare più server;
- gestire utenti e privilegi MySQL;
- verifica le impostazioni del server e le informazioni di runtime con suggerimenti di configurazione;
- verifica l'integrità referenziale nelle tabelle MyISAM;
- crea query complesse utilizzando Query-by-example (QBE), automaticamente
- collegare le tabelle richieste;
- creare grafici PDF del layout del database;
- cerca a livello globale in un database o in un sottoinsieme di esso;
- trasforma i dati archiviati in qualsiasi formato utilizzando una serie di funzioni predefinite, come la visualizzazione di dati BLOB come immagini o link per il download;
- gestire tabelle InnoDB e chiavi esterne;
Prerequisiti
Per seguire questo tutorial, hai bisogno di un sistema operativo Ubuntu 18.04 in esecuzione sul tuo computer locale o su un server remoto.
Se stai cercando un VPS (Virtual Private Server), puoi creare un account su Vultr tramite il mio link di riferimento per ottenere $ 50 di credito gratuito (solo per i nuovi utenti). E se devi configurare phpMyAdmin con un nome di dominio, ti consiglio di acquistare i nomi di dominio da NameCheap perché il prezzo è basso e offrono gratuitamente la protezione della privacy di Whois.
Si presume che tu abbia già installato lo stack LAMP su Ubuntu 18.04. In caso contrario, dai un'occhiata al seguente tutorial.
- Come installare lo stack LAMP (Apache, MariaDB, PHP7.2) su Ubuntu 18.04 LTS
Detto questo, iniziamo con l'installazione di phpMyAdmin.
Passaggio 1:scarica e installa phpMyAdmin su Ubuntu 18.04
phpMyAdmin è incluso nel repository del software Ubuntu 18.04. così possiamo installarlo facilmente con il comando qui sotto.
sudo apt update sudo apt install phpmyadmin
Il comando precedente installerà tutte le dipendenze necessarie comprese le estensioni PHP7. Durante l'installazione, ti verrà chiesto di selezionare un server web da configurare. Premi lo space
barra per selezionare apache2. (Un asterisco * indica che l'elemento è selezionato). Quindi premi Tab
chiave e Enter
per confermare la tua scelta.
Nella schermata successiva, seleziona Yes
per configurare un database per phpMyAdmin con dbconfig-common
.
Quindi imposta una password per phpmyadmin
utente in MariaDB/MySQL.
Una volta terminato questo passaggio, un nuovo database chiamato phpmyadmin
viene creato e l'utente del database phpmyadmin
dispone dei privilegi necessari per gestire questo database. Se sei curioso come me, puoi accedere a MariaDB e controllare quali privilegi phpmyadmin
utente è stato concesso.
È possibile utilizzare il seguente comando per accedere al server MariaDB.
sudo mysql -u root
Quindi controlla i privilegi di phpmyadmin
utente.
show grants for [email protected];
Uscita:
Come puoi vedere, utente phpmyadmin
ha tutti i privilegi sul database phpmyadmin
. Ora puoi uscire eseguendo:
exit;
Ora esegui il seguente comando per verificare se il /etc/apache2/conf-enabled/phpmyadmin.conf
il file esiste.
file /etc/apache2/conf-enabled/phpmyadmin.conf
Se non ci sono errori nel processo di installazione, dovresti vedere il seguente output di comando.
/etc/apache2/conf-enabled/phpmyadmin.conf: symbolic link to ../conf-available/phpmyadmin.conf
Se questo file non esiste sul tuo server, è probabile che tu non abbia selezionato il server web Apache nella procedura guidata di configurazione di phpMyAdmin. Puoi risolverlo con i seguenti comandi.
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin sudo systemctl reload apache2
Fase 2:Accesso a phpMyAdmin da una sottodirectory
Quando si installa phpMyAdmin, un file di configurazione viene posizionato in /etc/apache2/conf-enabled/phpmyadmin.conf
, che ci consente di accedere a phpMyAdmin tramite la sottodirectory. Se hai installato altre applicazioni web come WordPress sullo stesso server Ubuntu 18.04, aggiungi semplicemente /phpmyadmin
dopo il tuo nome di dominio nella barra degli indirizzi del browser.
your-domain.com/phpmyadmin
Se phpMyAdmin è installato sul tuo computer Ubuntu locale, puoi accedere all'interfaccia web di phpMyAdmin digitando il seguente testo nella barra degli indirizzi del browser.
localhost/phpmyadmin
Se la connessione viene rifiutata o non viene completata, potrebbe essere presente un firewall che impedisce le richieste HTTP. Se stai utilizzando iptables firewall, devi eseguire il comando seguente per aprire le porte TCP 80 e 443.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Se stai utilizzando il firewall UFW, esegui questo comando per aprire le porte TCP 80 e 443.
sudo ufw allow http sudo ufw allow https
Ora puoi usare il nome utente e la password di MariaDB/MySQL per accedere a phpMyAdmin
Fase 3:accedi a phpMyAdmin da un sottodominio
Se il tuo server Ubuntu 18.04 non ha altri host virtuali Apache, potresti voler utilizzare un sottodominio per accedere all'interfaccia web di phpMyAdmin. In questo modo, puoi abilitare HTTPS per crittografare il traffico.
Innanzitutto, dobbiamo creare un host virtuale Apache per phpMyAdmin. Lo snippet di configurazione phpMyAdmin esistente può essere utilizzato come modello. Copialo in un nuovo file.
sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf
Quindi modifica il nuovo file con un editor di testo a riga di comando, come Nano.
sudo nano /etc/apache2/sites-available/phpmyadmin.conf
Aggiungi le seguenti righe all'inizio di questo file. Sostituisci pma.example.com con il tuo sottodominio preferito per phpMyAdmin. Non dimenticare di creare un record DNS A per questo sottodominio.
<VirtualHost *:80> ServerName pma.example.com DocumentRoot /usr/share/phpmyadmin ErrorLog ${APACHE_LOG_DIR}/pma.error.log CustomLog ${APACHE_LOG_DIR}/pma.access.log combined
Aggiungi la seguente riga alla fine di questo file.
</VirtualHost>
Salva e chiudi il file. (Per salvare un file nell'editor di testo Nano, premi Ctrl+O
, quindi premere Invio per confermare. Per uscire, premi Ctrl+X
.) Quindi abilita questo host virtuale.
sudo a2ensite phpmyadmin.conf
Ricarica il server web Apache per rendere effettiva questa modifica.
sudo systemctl reload apache2
Ora dovresti essere in grado di accedere all'interfaccia web di phpMyAdmin tramite
pma.example.com
Prima di inserire le credenziali utente nel form di login, abilitiamo HTTPS.
Fase 4:Abilita HTTPS su phpMyAdmin con Apache
Per proteggere l'interfaccia web di phpMyadmin, possiamo installare un certificato Let's Encrypt TLS gratuito. Esegui il comando seguente per installare il client Let's Encrypt (certbot) dal repository del software Ubuntu 18.04.
sudo apt install certbot python3-certbot-apache
Python3-certbot-apache
è il plugin Apache per Certbot. Ora esegui il comando seguente per ottenere e installare il certificato TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email [email protected]
Spiegazione:
- –apache: Usa l'autenticatore e il programma di installazione di Apache
- –accetto :Accetto i termini di servizio di Let's Encrypt
- –reindirizzamento :aggiungi reindirizzamento 301.
- –hsts :aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP.
- –staple-ocsp :Abilita la pinzatura OCSP.
- –indispensabile :aggiunge l'estensione OCSP Must Staple al certificato.
- -d flag è seguito da un elenco di nomi di dominio, separati da virgola. Puoi aggiungere fino a 100 nomi di dominio.
- –e-mail :Email utilizzata per la registrazione e il contatto di recupero.
Ti verrà chiesto se desideri ricevere e-mail da EFF (Electronic Frontier Foundation). Dopo aver scelto Y o N, il tuo certificato TLS verrà automaticamente ottenuto e configurato per te, come indicato dal messaggio sottostante.
Fase 5:Risolvi l'errore di accesso a phpMyAdmin
Se provi ad accedere a phpMyAdmin con l'account root di MariaDB, potresti visualizzare il seguente errore.
#1698 - Access denied for user 'root '@'localhost'
e
mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'
Se accedi con l'utente phpmyadmin
, non vedrai l'errore precedente. Tuttavia, l'utente phpmyadmin
può essere utilizzato solo per gestire il phpmyadmin
Banca dati. La causa dell'errore è che per impostazione predefinita l'utente root di MariDB è autenticato tramite il plugin unix_socket, invece di usare mysql_native_password
collegare. Per risolvere questo problema, possiamo creare un altro utente amministratore e concedere tutti i privilegi al nuovo utente amministratore.
Accedi al server MariaDB dalla riga di comando.
sudo mysql -u root
Crea un utente amministratore con autenticazione tramite password.
create user [email protected] identified by 'your-preferred-password';
Concedi tutti i privilegi su tutti i database.
grant all privileges on *.* to [email protected] with grant option;
Elimina i privilegi ed esci;
flush privileges; exit;
Ora puoi accedere a phpMyAmin con admin
account e gestisci tutti i database.
Fase 6:installa l'ultima versione stabile di phpMyAdmin
Il repository Ubuntu 18.04 viene fornito con PHP7.2 e phpMyAdmin 4.6.6. Puoi controllare la tua versione di phpMyAdmin nella barra del titolo del browser.
Tuttavia, PHP7.2 è supportato da phpMyAdmin dalla versione 4.7.4. Quando usi phpMyAdmin 4.6.6 con PHP7.2, vedrai il seguente messaggio di avviso nella scheda Esporta e Importa.
parameter must be an array or an object that implements countable
Per risolvere il problema di compatibilità, possiamo installare phpMyAdmin 4.9, che è l'ultima versione stabile al momento della stesura di questo articolo. Scaricalo usando wget
.
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
Suggerimento:puoi sempre utilizzare il formato URL sopra riportato per scaricare l'ultima versione stabile di phpMyAdmin. Sostituisci semplicemente 4.9.0.1 con il numero di versione più recente.
Quindi estrailo.
sudo apt install unzip unzip phpMyAdmin-4.9.0.1-all-languages.zip
Eseguire il backup dei file phpMyAdmin originali.
sudo mv /usr/share/phpmyadmin /usr/share/phpmyadmin-original
Sposta phpMyadmin 4.9 in /usr/share/phpmyadmin/
directory.
sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin
Modifica il file di configurazione del fornitore.
sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php
Trova la riga seguente.
define('CONFIG_DIR', '');
Cambialo in
define('CONFIG_DIR', '/etc/phpmyadmin/');
Salva e chiudi il file. Quindi crea il tmp
cartella in cui archiviare i file della cache.
sudo mkdir /usr/share/phpmyadmin/tmp
Modifica la proprietà dell'utente e la proprietà del gruppo in www-data
.
sudo chown www-data:www-data /usr/share/phpmyadmin/tmp
Ora puoi usare phpMyAdmin 4.9 senza vedere gli errori PHP.
Abilita l'autenticazione a due fattori
Puoi anche rafforzare phpMyAdmin abilitando l'autenticazione a due fattori, che è una funzionalità aggiunta nella versione 4.8. Per abilitarlo, accedi a phpMyAdmin. Quindi vai su Settings
-> Two-factor authentication
e seleziona Applicazione di autenticazione (2FA) .
Dopo aver fatto clic su Configura autenticazione a due fattori pulsante, ti verrà presentato un codice QR, che devi scansionare con un'app di autenticazione a due fattori sul tuo telefono.
Google Authenticator è un'app 2FA popolare, ma consiglio FreeOTP, che è un'app 2FA open source sviluppata da Red Hat. Dopo aver inserito il codice di autenticazione generato dalla tua app 2FA, l'autenticazione a due fattori è abilitata. Se ora esci e riaccedi, devi inserire il codice di autenticazione oltre a nome utente e password.