下面给你一个从零开始把 Debian + PHP 应用容器化的完整思路和示例,适合常见 Web 场景(如 PHP-FPM + Nginx)。
容器化 Debian + PHP 通常有两种方式:
project/
├── dockerfile
├── index.php
└── nginx/
└── default.conf
FROM php:8.2-fpm
# 安装常用扩展
RUN apt-get update && apt-get install -y \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
&& docker-php-ext-configure gd \
&& docker-php-ext-install pdo pdo_mysql gd
WORKDIR /var/www/html
COPY . /var/www/html
EXPOSE 9000
server {
listen 80;
root /var/www/html;
index index.php;
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
version: '3'
services:
php:
build: .
volumes:
- .:/var/www/html
nginx:
image: nginx:latest
ports:
- "8080:80"
volumes:
- .:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
启动:
docker compose up -d
访问:
http://localhost:8080
FROM debian:12
RUN apt-get update && apt-get install -y \
php-cli \
php-fpm \
php-mysql \
nginx \
&& rm -rf /var/lib/apt/lists/*
COPY index.php /var/www/html/
CMD ["php-fpm"]
⚠️ 注意:这种方式需要自己管理服务启动(supervisor 或 entrypoint)
php -v
docker-php-ext-install mbstring
docker logs <container_id>
你可以告诉我:
我可以帮你定制一份可直接用的 Docker 配置。