Introduzione
phpMyAdmin è uno strumento software gratuito scritto in PHP, destinato a gestire l'amministrazione di MySQL sul Web. phpMyAdmin supporta una vasta gamma di operazioni su MySQL e MariaDB. Le operazioni utilizzate di frequente (gestione di database, tabelle, colonne, relazioni, indici, utenti, autorizzazioni, ecc.) Possono essere eseguite tramite l'interfaccia utente, mentre si ha ancora la possibilità di eseguire direttamente qualsiasi istruzione SQL.
phpMyAdmin è stato creato per permettere agli utenti di interagire con MySQL attraverso un'interfaccia web.
In questa guida, vedremo come installare e proteggere phpMyAdmin con Docker Compose per gestire i database su un sistema Ubuntu 20.04 LTS Focal Fossa.
Prerequisiti
Per seguire questo tutorial, avrai bisogno di:
- Un server che esegue Ubuntu 20.04 LTS, insieme a un utente non root con privilegi sudo e un firewall attivo.
- Docker installato sul tuo server, seguendo questo tutorial Come installare e configurare Docker su Ubuntu 20.04 LTS.
- Docker Compose installato sul tuo server, seguendo questo tutorial Come installare Docker Compose su Ubuntu 20.04 LTS.
- Un nome di dominio registrato.
Definire le variabili di ambiente
Innanzitutto, crea una directory di progetto per la tua configurazione con il comando mkdir chiamata my_app
e naviga verso di essa con il comando cd:
mkdir my_app && cd my_app
Il tuo database e i contenitori di applicazioni dovranno accedere a determinate variabili di ambiente in fase di esecuzione affinché i dati dell'applicazione persistano e siano accessibili alla tua applicazione.
Invece di impostare tutti i valori nel nostro file Compose Docker (il file principale che contiene informazioni su come verranno eseguiti i nostri contenitori) possiamo impostare i valori sensibili in un file .env
. Ciò impedirà a questi valori di essere copiati nei repository dei nostri progetti e di essere esposti pubblicamente.
Nella directory principale del progetto ~/my_app
, crea un file chiamato .env:
nano .env
I valori che imposteremo in questo file includono una password per il nostro utente root MySQL, un nome utente e una password per un utente normale, non root, per accedere al database.
Aggiungi i seguenti nomi e valori di variabili al file. Ricorda di fornire qui i tuoi valori per ogni variabile:
Abbiamo incluso una password per l'account amministrativo di root , nonché il nostro nome utente e la password preferiti per il nostro database dell'applicazione.
Salvare e chiudere il file al termine della modifica.
Poiché il tuo file .env
contiene informazioni riservate, dovrai assicurarti che sia incluso nei tuoi progetti all'interno dei file file .gitignore
e .dockerignore
, che indicano a Git e Docker quali file non copiare rispettivamente nei tuoi repository Git e nelle immagini Docker.
Se hai intenzione di lavorare con Git per il controllo della versione, inizializza la tua directory di lavoro corrente come repository con git init
:
git init
Quindi apri un file .gitignore
:
nano .gitignore
Aggiungi .env
all'interno del file:
Salvare e chiudere il file al termine della modifica.
Allo stesso modo, è una buona precauzione aggiungere .env
a un file .dockerignore
, in modo che non finisca nei contenitori quando si utilizza questa directory come contesto di compilazione.
Apri il file:
nano .dockerignore
Aggiungi .env
all'interno del file:
Puoi facoltativamente aggiungere file e directory associati allo sviluppo della tua applicazione:
Salva e chiudi il file al termine.
Definire i servizi con Docker Compose
Il file docker-compose.yml
conterrà le definizioni di servizio per la configurazione. Un servizio in Compose è un contenitore in esecuzione e le definizioni del servizio specificano le informazioni su come verrà eseguito ciascun contenitore.
Utilizzando Compose, è possibile definire diversi servizi per eseguire applicazioni multi-contenitore.
Per iniziare, apri il file docker-compose.yml
:
nano docker-compose.yml
Aggiungi il seguente codice per definire la versione del tuo file Compose e il servizio database db
:
Successivamente, sotto la definizione del servizio db
, aggiungere la definizione per il servizio dell'applicazione phpmyadmin
:
Infine aggiungi le definizioni di rete e volume:
Il file docker-compose.yml
finito sarà simile al seguente:
Salvare e chiudere il file al termine della modifica.
Per maggiori informazioni riguardo le specifiche voci dei vari servizi leggere il tutorial dedicato all'installazione di Wordpress con Docker Compose al paragrafo "Definire i servizi con Docker Compose".
Creare i contenitori
Possiamo avviare i nostri contenitori con il comando docker-compose up
, che creerà ed eseguirà i nostri contenitori nell'ordine specificato.
Creare i contenitori con il comando docker-compose up
e il flag -d
, verranno eseguiti in background i contenitori db
e phpmyadmin
:
docker-compose up -d
Vedrai un output che conferma che i tuoi servizi sono stati creati:
Creating db ... done
Creating myapp_phpmyadmin_1 ... done
Utilizzando il comando docker-compose ps
, controlla lo stato dei tuoi servizi:
docker-compose ps
Dovresti visualizzare un output simile al seguente, con i servizi db
e phpmyadmin
con stato Up
:
Name Command State Ports
----------------------------------------------------------------------------------
db docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp
myapp_phpmyadmin_1 /docker-entrypoint.sh apac ... Up 0.0.0.0:3333->80/tcp
Se vedete qualcosa di diverso da Up
nella colonna State
per i servizi db o phpmyadmin
, assicurati di controllare i registri di servizio con il comando docker-compose logs
:
docker-compose logs service_name
Adesso è possibile accedere a PhpMyAdmin da browser, collegarsi al proprio nome dominio da browser:
https://example.com
Conclusione
In questo tutorial abbiamo visto come installare PhpMyadmin con Docker Compose su Ubuntu 20.04 LTS Focal Fossa.
Potrebbe interessarti: Come installare WordPress con Docker Compose su Ubuntu 20.04 LTS.