🐘
Docker Compose

Nginx + PHP-FPM

Classic web stack — Nginx reverse proxy to PHP-FPM for Laravel/WordPress

📋Configuration Files

docker-compose.yml

yaml
1services:
2 nginx:
3 image: nginx:alpine
4 ports:
5 - "8080:80"
6 volumes:
7 - ./src:/var/www/html
8 - ./nginx.conf:/etc/nginx/conf.d/default.conf
9 depends_on:
10 - php
11
12 php:
13 image: php:8.3-fpm
14 volumes:
15 - ./src:/var/www/html
16
17 db:
18 image: mysql:8
19 environment:
20 MYSQL_ROOT_PASSWORD: secret
21 MYSQL_DATABASE: app
22 volumes:
23 - db_data:/var/lib/mysql
24
25volumes:
26 db_data:

nginx.conf

Pass PHP requests to php:9000

yaml
1server {
2 listen 80;
3 root /var/www/html;
4 index index.php index.html;
5
6 location / {
7 try_files $uri $uri/ /index.php?$query_string;
8 }
9
10 location ~ \.php$ {
11 fastcgi_pass php:9000;
12 fastcgi_index index.php;
13 include fastcgi_params;
14 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
15 }
16}
📄

Step 01

Run Nginx + PHP

(01)Start stack

Linux
1docker compose up -d --build
2docker compose ps
3docker compose logs -f

(02)Stop

Linux
1docker compose down