Come creare un container di Docker con PHP 8, Nginx e MySQL
A volte abbiamo bisogno di un ambiente PHP pulito per iniziare un nuovo progetto o fare esperimenti. Questa risorsa gratuita ti aiuterà a configurare un ambiente di sviluppo in modo semplice usando Docker.
Quale sarà il risultato finale?
Alla fine dell'installazione, avrai:
- Un ambiente basato su PHP 8.2.13 con Nginx (nginx:stable-alpine) come server web.
- Un container MySQL 8.0.37 per gestire il database.
- Accesso web tramite l'URL http://envphp.local.
Prerequisiti
Prima di iniziare, assicurati di avere:
- Docker versione 23 o superiore
- Docker Compose versione v1.29.2 o superiore
- Conoscenze base dei comandi Docker (puoi consultare questa lista)
Se non hai ancora installato Docker, consulta la documentazione ufficiale: https://docs.docker.com/engine/install/
Passaggi per l'installazione
Clona il progetto
Esegui il seguente comando per clonare il repository che contiene l'ambiente preconfigurato.
git clone git@github.com:dqblanco/help-commands.git
Copia i file nel tuo progetto
Copia la cartella interna situata in ./help-commands/Docker/EnvPHP/ nella cartella del tuo progetto.
cd ~/Documents/Projects/
mkdir myproject
cp -R ~/Documents/Projects/help-commands/Docker/EnvPHP/* ~/Documents/Projects/myproject/
Nota: Ricorda di cambiare il percorso ~/Documents/Projects/ con quello che usi per i tuoi progetti.
Dentro la cartella myproject
dovresti trovare la cartella docker
.
Accedi alla cartella docker del progetto
cd ~/Documents/Projects/myproject/docker
Configura l'ambiente
Duplica il file .env.dist
rinominandolo in .env.
cp .env.dist .env
Aggiungi il nuovo host
Apri il file dei hosts.
sudo vim /etc/hosts
Aggiungi la seguente riga.
127.0.0.1 envphp.local
Salva e chiudi il file.
Avvia i container
Esegui il seguente comando per avviare i container in background.
docker compose up -d
Se tutto è andato a buon fine, potrai accedere a http://envphp.local/ e vedere l'esecuzione di index.php.
Accedi al container
Se hai bisogno di entrare nell'ambiente di lavoro dentro il container.
docker exec -it envphp-workspace bash
Nginx punta alla cartella public del progetto.
Mysql
Per connetterti a MySQL:
-
Utente: root
-
Password: root
-
Host: 127.0.0.1
-
Porta: 3306
Questa risorsa è ideale per configurare rapidamente un ambiente PHP senza preoccuparsi dell'installazione manuale di ogni servizio. Scaricala e provala nel tuo prossimo progetto! 🚀