Questo tutorial ti mostrerà come installare phpMyAdmin con Nginx, MariaDB e PHP7.4 (LEMP) su Ubuntu 20.04. 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.
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, devi avere un sistema operativo Ubuntu 20.04 in esecuzione sul tuo computer locale o su un server remoto.
Se stai cercando un VPS (Virtual Private Server), puoi fare clic su questo link speciale per ottenere $ 100 di credito gratuito su DigitalOcean. (Solo per nuovi utenti). Se sei già un utente DigitalOcean, puoi fare clic su questo link speciale per ottenere $ 50 di credito gratuito su Vultr (solo per i nuovi utenti).
Si presume che tu abbia già installato lo stack LEMP su Ubuntu 20.04. In caso contrario, dai un'occhiata al seguente tutorial.
- Come installare lo stack LEMP (Nginx, MariaDB, PHP7.4) su Ubuntu 20.04
Detto questo, iniziamo con l'installazione di phpMyAdmin.
Passaggio 1:scarica e installa phpMyAdmin su Ubuntu 20.04
phpMyAdmin è incluso nel repository del software Ubuntu 20.04, quindi possiamo installarlo facilmente con il seguente comando.
sudo apt update sudo apt install phpmyadmin
Il comando precedente installerà tutte le dipendenze necessarie comprese le estensioni PHP7. Durante l'installazione, ti chiederà se vuoi usare dbconfig-common
per configurare il database. Premi il tasto Tab per selezionare Sì.
Questo creerà anche un nuovo utente del database chiamato phpmyadmin
. Assegna una password a questo utente.
Successivamente, ti verrà chiesto di selezionare un server Web da configurare. Nginx non è nell'elenco, quindi premi il tasto Tab e premi OK per saltare questo passaggio.
Una volta fatto, 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.
show grants for [email protected];
Uscita:
Come puoi vedere, utente phpmyadmin
ha tutti i privilegi sul database phpmyadmin
. Ora puoi uscire eseguendo:
exit;
Fase 2:crea un blocco server Nginx per phpMyAdmin
Per poter accedere all'interfaccia web di phpMyAdmin, dobbiamo creare un blocco server Nginx eseguendo il comando seguente.
sudo nano /etc/nginx/conf.d/phpmyadmin.conf
Lo configureremo in modo da poter accedere a phpMyAdmin tramite un sottodominio. Incolla il seguente testo nel file. Sostituisci pma.example.com
con il tuo attuale sottodominio e non dimenticare di creare un record DNS A per esso.
server { listen 80; listen [::]:80; server_name pma.example.com; root /usr/share/phpmyadmin/; index index.php index.html index.htm index.nginx-debian.html; access_log /var/log/nginx/phpmyadmin_access.log; error_log /var/log/nginx/phpmyadmin_error.log; location / { try_files $uri $uri/ /index.php; } location ~ ^/(doc|sql|setup)/ { deny all; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } location ~ /\.ht { deny all; } }
I tuoi file phpMyAdmin sono in /usr/share/phpmyadmin/
directory. Salva e chiudi il file. Quindi testa le configurazioni di Nginx.
sudo nginx -t
Se il test ha esito positivo, ricarica Nginx per rendere effettive le modifiche.
sudo systemctl reload nginx
Ora dovresti essere in grado di accedere all'interfaccia web di phpMyAdmin tramite
pma.example.com
Passaggio 3:installazione del certificato TLS
Per proteggere l'interfaccia web di phpMyadmin, possiamo installare un certificato Let's Encrypt TLS gratuito. Installa il client Let's Encrypt dal repository del software Ubuntu 20.04 come di seguito:
sudo apt install certbot python3-certbot-nginx
Python3-certbot-nginx
è il plugin Nginx per Certbot. Ora esegui il comando seguente per ottenere e installare il certificato TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d pma.example.com --email [email protected]
Dove:
- –nginx :usa l'autenticatore e il programma di installazione Nginx
- –accetto :Accetto i termini di servizio di Let's Encrypt
- –reindirizzamento :applica HTTPS tramite 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 una 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 S o N, il tuo certificato TLS verrà automaticamente ottenuto e configurato per te, come indicato dal messaggio sottostante.
Fase 4:verifica il tuo certificato TLS
Vai su ssllabs.com per testare il certificato e la configurazione TLS. Dovresti ottenere A+ perché HSTS è abilitato.
Fase 5:Risolvi l'errore di accesso a phpMyAdmin
Se accedi 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 amministrare 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 aggirare 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 mariadb -u root
Crea un utente amministratore con autenticazione tramite password.
create user [email protected] identified by 'your-chosen-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 phpMyAdmin con l'account amministratore e gestire tutti i database.
Rinnovo automatico del certificato TLS
Per rinnovare automaticamente il certificato Let's Encrypt, modifica semplicemente il file crontab dell'utente root.
sudo crontab -e
Quindi aggiungi la seguente riga in basso.
@daily certbot renew --quiet && systemctl reload nginx
È necessario ricaricare Nginx per ricevere il nuovo certificato per i client.