GNU/Linux >> Linux Esercitazione >  >> Ubuntu

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

Questo tutorial ti mostrerà come installare phpMyAdmin con Nginx, MariaDB e PHP7.2 (LEMP) su Ubuntu 18.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. Imparerai anche come abilitare l'autenticazione a due fattori su phpMyAdmin.

Prerequisiti

Per seguire questo tutorial, devi avere 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 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 18.04. In caso contrario, dai un'occhiata al seguente tutorial.

  • Come installare lo stack LEMP (Nginx, MariaDB, PHP7.2) su Ubuntu 18.04

Detto questo, iniziamo con l'installazione di phpMyAdmin.

Fase 1:scarica e installa phpMyAdmin

phpMyAdmin è incluso nel repository del software Ubuntu 18.04, quindi possiamo installarlo facilmente con il seguente comando.

sudo apt update
sudo apt install phpmyadmin

Durante l'installazione, 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.

Quindi, seleziona Sì per creare un nuovo database e lascia che dbconfig-common per configurarlo.

Questo creerà anche un nuovo utente del database chiamato phpmyadmin . Assegna una password a questo utente.

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;

Passaggio 2:crea un blocco server Nginx

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 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.2-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

Nota che phpMyAdmin non funzionerà nelle versioni recenti di Firefox. Puoi utilizzare Google Chrome per visitare l'interfaccia web di phpMyAdmin. Prima di inserire le credenziali utente nel form di login, abilitiamo HTTPS.

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 18.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 --must-staple -d pma.example.com --email your-email-address

Spiegazione:

  • –nginx :usa l'autenticatore e il programma di installazione Nginx
  • –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.

Verifica il tuo certificato TLS

Vai su ssllabs.com per testare il certificato e la configurazione TLS. Dovresti ottenere A+ perché HSTS è abilitato.

Risoluzione dei problemi di accesso

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 phpMyAmin con l'account amministratore e gestire tutti i database.

Utilizzo di una porta diversa

L'uso di una porta diversa invece della porta predefinita 443 può essere vantaggioso perché puoi chiudere quella porta quando non stai utilizzando phpMyAdmin per prevenire attività di hacking, oppure puoi specificare quali indirizzi IP possono accedere a quella porta. È molto semplice da configurare. Basta aprire il file di blocco del server.

sudo nano /etc/nginx/conf.d/phpmyadmin.conf

Trova le due righe seguenti:

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot

Cambia 443 in una porta diversa, ad esempio 8443.

listen [::]:8443 ssl ipv6only=on; # managed by Certbot
listen 8443 ssl; # managed by Certbot

Puoi anche aggiungere http2 a loro come di seguito per abilitare il protocollo HTTP/2.

listen [::]:8443 ssl http2 ipv6only=on; # managed by Certbot
listen 8443 ssl http2; # managed by Certbot

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 puoi accedere a phpMyAdmin tramite:

https://pma.example.com:8443

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.

parameter must be an array or an object that implements countable

Per risolvere il problema di compatibilità, possiamo installare phpMyAdmin 4.8, che è l'ultima versione stabile al momento della stesura di questo articolo. Scaricalo usando wget .

wget https://files.phpmyadmin.net/phpMyAdmin/4.8.0.1/phpMyAdmin-4.8.0.1-all-languages.zip

Quindi estrailo.

sudo apt install unzip

unzip phpMyAdmin-4.8.0.1-all-languages.zip

Eseguire il backup dei file phpMyAdmin originali.

sudo mv /usr/share/phpmyadmin /usr/share/phpmyadmin-original

Sposta phpMyadmin 4.8 in /usr/share/phpmyadmin/ directory.

sudo mv phpMyAdmin-4.8.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.8 senza ricaricare o riavviare Nginx.

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.

Rinnovo automatico del certificato

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

--quiet flag sopprimerà lo standard output. Se vuoi ricevere un errore standard, aggiungi la seguente riga all'inizio del file crontab.

MAILTO=your-email-address

È necessario ricaricare Nginx per presentare il nuovo certificato ai client.

Spero che questo tutorial ti abbia aiutato a installare phpMyAdmin con Nginx su Ubuntu 18.04 LTS. Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere altri suggerimenti e trucchi. Abbi cura di te.


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 phpMyAdmin su Ubuntu 18.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