GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare l'ultimo phpMyAdmin con LEMP su Ubuntu 20.04

phpMyAdmin è uno strumento di amministrazione gratuito e open source scritto in PHP utilizzato per amministrare server di database MySQL e MariaDB da un'Interfaccia Web . La maggior parte degli sviluppatori preferisce utilizzare phpMyAdmin per interagire con un server di database grazie alla sua facilità d'uso e all'avanzato editor SQL, che semplifica la creazione e il test di query SQL complesse.

Nel seguente tutorial imparerai come installare LEMP e phpMyAdmin dal sorgente su Ubuntu 20.04.

Prerequisiti

  • Sistema operativo consigliato: Ubuntu 20.04 – opzionale (Ubuntu 21.04 e Linux Mint 20)
  • Account utente: Un account utente con accesso sudo o root.
  • Obbligatorio: Nginx, MariaDB e PHP (LEMP)

Aggiornamento del sistema operativo

Innanzitutto, aggiorna il tuo Ubuntu sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:

sudo apt update && sudo apt upgrade -y

Nginx per phpMyAdmin

Aggiungi PPA personalizzato per Nginx più recente

Dato che stai configurando phpMyAdmin con Nginx, dovrai installare l'applicazione web. Attualmente, il metodo migliore per la maggior parte delle persone è utilizzare il PPA del noto Ondřej Surý, che mantiene entrambe le versioni Nginx e Stable ed è costantemente aggiornato.

Innanzitutto, aggiungi PPA stabile o mainline come segue:

Stabile Nginx:

sudo add-apt-repository ppa:ondrej/nginx-stable -y && sudo apt update

Nginx Mainline (consigliato):

sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update

Installa Nginx

Dopo aver installato Nginx PPA stabile o mainline, utilizzare il comando seguente per installare Nginx:

sudo apt install nginx-core nginx-common nginx nginx-full

MariaDB per phpMyAdmin

Installa MariaDB per Ubuntu 20.04

Innanzitutto, devi installare MariaDB per creare un database e un nome utente come segue:

sudo apt install mariadb-server

Nota, questa è una versione precedente, con l'installazione predefinita che è la versione 10.3. Visita il nostro tutorial se preferisci installare una versione più recente di MariaDB, come 10.5 e 10.6.

Quindi, esegui lo script di sicurezza se hai installato Fresh per la prima volta con il seguente comando:

sudo mysql_secure_installation

Quindi, segui di seguito:

  • Impostazione della password per root conti.
  • Rimozione degli account root accessibili dall'esterno dell'host locale.
  • Rimozione degli account di utenti anonimi.
  • Rimozione del database di test, a cui per impostazione predefinita possono accedere utenti anonimi.

Nota, usi (Y) per rimuovere tutto.

Crea database e nome utente phpMyAdmin

Innanzitutto, apri MariaDB e crea un nuovo database per phpMyAdmin:

sudo mysql -u root

Quindi, crea un database nel terminale MariaDB:

CREATE DATABASE phpmyadmindb;

Ora devi creare un utente e concedere le autorizzazioni come segue:

GRANT ALL ON phpmyadmindb.* TO phpmyadminuser@localhost IDENTIFIED BY 'password here change';

Per concludere, svuota i privilegi ed esci con i seguenti codici:

FLUSH PRIVILEGES;
QUIT;

PHP per phpMyAdmin

Aggiungi PPA personalizzato per PHP più recente

Simile alla nostra installazione di Nginx, si consiglia di aggiungere il PPA da Ondřej Surý, il manutentore PHP di Debian. Il PPA personalizzato ha tutte le ultime versioni di 7.4, 8.0 e la più recente 8.1 in arrivo.

Aggiungi il PPA usando il seguente comando:

sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y

Installa PHP per Ubuntu 20.04

Ora puoi installare PHP 7.4 o PHP 8.0. Poiché PHP è ancora più recente e potrebbe avere più bug con phpMyAdmin, per ora si consiglia di installare PHP 7.4. Per ottenere ciò, utilizzare il seguente comando da terminale per installare i pacchetti richiesti:

sudo apt install php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-mcrypt php7.4-cli php7.4-curl php7.4-zip php7.4-gd

Installa phpMyAdmin su Ubuntu 20.04

Per impostazione predefinita, il repository Ubuntu 20.04 viene fornito con phpMyAdmin e le dipendenze richieste. Tuttavia, come spesso accade con le versioni LTS di Ubuntu, la versione e la build sono molto indietro rispetto a quelle attualmente disponibili dal sorgente. Quindi, come scopo di questa guida, scaricherai dalla fonte come segue:

Scarica l'ultima versione sorgente di phpMyAdmin

Per cominciare, visita la pagina dei download di phpMyAdmin per trovare l'ultima versione attualmente. Al momento di questo tutorial, la versione 5.1.1 è l'ultima.

Esegui i seguenti codici per scaricare automaticamente l'ultima versione in tutte le lingue:

DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz

Se vuoi scaricare la versione inglese, sostituisci la riga finale con la seguente:

wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-english.tar.gz

Quindi, estrai l'archivio usando il seguente comando:

tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz

Configura phpMyAdmin manualmente

Devi spostare la directory estratta e le sue sottodirectory in /usr/share posizione della directory in cui phpMyAdmin si aspetta di trovare i suoi file di configurazione per impostazione predefinita. Per fare ciò, usa il seguente comando:

sudo mv phpMyAdmin-*/ /usr/share/phpmyadmin

Per impostazione predefinita, phpMyAdmin non viene fornito con un TMP directory durante l'installazione dal sorgente e devi crearla manualmente:

sudo mkdir -p /var/lib/phpmyadmin/tmp

Assegna le autorizzazioni corrette all'utente www-data con la directory phpMyAdmin:

sudo chown -R www-data:www-data /var/lib/phpmyadmin

Nella directory phpMyAdmin è incluso un file di esempio di configurazione predefinito. Dovrai rinominare questo file affinché phpMyAdmin riconosca la configurazione. Tuttavia, per il backup, utilizzerai il CP comando per creare una copia e mantenere l'impostazione predefinita come backup in caso di errori nella posizione /etc/usr/phpmyadmin/ directory .

Copia config.sample.inc.php su config.inc.php con il seguente comando:

sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Quindi, apri questo file utilizzando il tuo editor di testo preferito. Per il tutorial viene utilizzato l'editor di testo nano:

sudo nano /usr/share/phpmyadmin/config.inc.php

phpMyAdmin utilizza un codice Blowfish. Scorri verso il basso fino alla riga che inizia con $cfg['blowfish_secret'] .

Le linee saranno ad esempio:

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Dovrai assegnare una stringa di 32 caratteri casuali tra le virgolette singole. Il modo più semplice per raggiungere questo obiettivo è utilizzare il programma pwgen . Per installare pwgen, usa il seguente comando da terminale:

sudo apt install pwgen

Una volta installato, esegui il seguente comando:

pwgen -s 32 1

Otterrai quindi i tuoi 32 caratteri casuali per il segreto del pesce palla, output di esempio:

Esempio di aggiunta della cifratura al file di configurazione (non copiare):

$cfg['blowfish_secret'] = 'kQVwa2yLI6FxA3LN6E7YcW3WgtTKTZ2j'

Il resto delle impostazioni predefinite dovrebbe funzionare per la maggior parte degli utenti. Se il tuo server si trova su un altro server situato nella tua rete, trova e modifica la riga $cfg['Servers'][$i]['host'] = a quello dell'indirizzo IP privato. Esempio sotto:

$cfg['Servers'][$i]['host'] = '192.168.55.101';

Crea un blocco server Nginx per phpMyAdmin

Per accedere all'interfaccia web di phpMyAdmin, dovrai creare un blocco server Nginx. Si consiglia vivamente di tenerlo separato e su un sottodominio, puoi nominarlo come preferisci per aiutare con la sicurezza e gli attacchi di forza bruta.

Innanzitutto, crea e apri il blocco del server utilizzando l'editor di testo nano come segue:

sudo nano /etc/nginx/sites-available/phpmyadmin.conf

Successivamente, puoi incollare il testo seguente nel file. Nota, devi sostituire l'URL del dominio con il tuo:

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;
  }
}

Se sei l'unico ad accedervi da un indirizzo IP statico, puoi aggiungere il seguente codice sopra la prima voce di posizione. Di seguito un esempio:

  allow <your ip address>;
  deny all; 

  location / {
    try_files $uri $uri/ /index.php;
  }
...........................................

Questo naturalmente bloccherà chiunque visiti la pagina con un errore 403 a meno che non sia consentito dal tuo indirizzo IP. Questo, per natura, può fermare tutti gli attacchi bruti nelle loro tracce, ma forse non è fattibile per alcune configurazioni.


Ora salva usando (CTRL+O) ed esci con (CTRL+X) .

Testa il tuo blocco server Nginx eseguendo il comando dry run:

sudo nginx -t

Se non hai errori, dovresti ottenere il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ora riavvia il tuo servizio Nginx per rendere effettive le modifiche:

sudo systemctl restart nginx

Accesso all'interfaccia utente Web di phpMyAdmin

Per accedere all'interfaccia web, apri il tuo browser Internet preferito e digita pma.example.com con (esempio) il tuo dominio. Dovresti accedere alla schermata di accesso di phpMyAdmin come segue:

Accedi utilizzando il nome utente e la password MariaDB che hai impostato originariamente all'inizio del tutorial. Verrai quindi alla schermata principale.

Installa certificato TLS

Per proteggere ulteriormente nell'interfaccia web di phpMyAdmin, puoi opzionalmente installare un certificato Let's Encrypt TLS gratuito dal repository predefinito di Ubuntu .

Esegui il seguente comando nel tuo terminale Ubuntu:

sudo apt install certbot python3-certbot-nginx

Ora esegui il seguente comando per ottenere e installare il certificato TLS per Nginx e phpMyAdmin:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email your-email-address

Durante l'installazione del certificato, riceverai un avviso per ricevere e-mail da EFF(Electronic Frontier Foundation) . Scegli Y o N, quindi il tuo certificato TLS verrà automaticamente installato e configurato per te.

Questo è tutto e hai installato SSL nella tua area phpMyAdmin. Assicurati di eseguire il test utilizzando un test SSL gratuito come DigiCert o SSL Labs.


Ubuntu
  1. Come installare phpMyAdmin con Nginx su Ubuntu 18.04

  2. Come installare Joomla con Apache su Ubuntu 18.04

  3. Come installare phpMyAdmin su Ubuntu

  4. Come installare WordPress 5.x con Nginx su Ubuntu 18.04 / Ubuntu 16.04

  5. Come installare phpMyAdmin con lo stack LAMP su Ubuntu

Come installare l'ultimo PHPMyAdmin su Ubuntu 18.04

Come installare phpMyAdmin su Ubuntu 16.04

Come installare phpMyAdmin su Ubuntu 20.04 LTS

Come installare lo stack LEMP con PhpMyAdmin in Ubuntu 20.04

Come installare phpMyAdmin su Ubuntu 18.04

Come installare phpMyAdmin su Ubuntu 22.04