GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare phpMyAdmin con Nginx (LEMP) su Ubuntu 20.04 LTS

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.


Ubuntu
  1. Come installare phpMyAdmin con Nginx su Ubuntu 18.04

  2. Come installare Seafile con Nginx su Ubuntu 20.04 LTS

  3. Come installare Seafile con Nginx su Ubuntu 18.04 LTS

  4. Come installare GitBucket con Nginx su Ubuntu 18.04 LTS

  5. Come distribuire Modsecurity con Nginx su Ubuntu 20.04 LTS

Come installare LEMP su Ubuntu 18.04 LTS

Come installare phpMyAdmin con Nginx su Ubuntu 18.04 LTS

Come installare LEMP su Ubuntu 20.04 LTS

Come installare phpMyAdmin con Nginx su Ubuntu 20.04 LTS

Come installare lo stack LEMP con PhpMyAdmin in Ubuntu 20.04

Come installare WordPress con Nginx in Ubuntu 20.04