Se vuoi configurare un ambiente di sviluppo con PHP-FPM e nginx utilizzando Docker e Docker Compose, segui questa guida passo dopo passo.
1. Creazione della struttura del progetto
Per prima cosa, organizziamo i file in una struttura chiara:
my_project/
├── docker-compose.yml
├── nginx/
│ └── default.conf
├── php/
│ ├── Dockerfile
│ └── index.php
2. Scrivere il Dockerfile per PHP-FPM
Nel file php/Dockerfile
, definisci il container PHP-FPM:
FROM php:8.2-fpm
WORKDIR /var/www/html
COPY . /var/www/html
3. Configurazione di Nginx
Nel file nginx/default.conf
, configura nginx per comunicare con PHP-FPM:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
4. Creare il file Docker Compose
Nel file docker-compose.yml
, definisci i servizi:
services:
php:
build: ./php
volumes:
- ./php:/var/www/html
nginx:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./php:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
5. Creare un file PHP di test
Nel file php/index.php
, aggiungi un semplice script:
<?php
phpinfo();
?>
6. Avviare i container
Ora puoi avviare i servizi con:
docker compose up -d
Apri il browser e visita http://localhost:8080
per verificare che tutto funzioni.
Conclusione
Ora hai un ambiente PHP-FPM con nginx funzionante in Docker. Questo setup è ideale per lo sviluppo e può essere facilmente esteso per l'uso in produzione.