温馨提示×

怎么容器化debian php

小樊
36
2026-10-11 00:41:36
栏目: 编程语言

下面给你一个从零开始把 Debian + PHP 应用容器化的完整思路和示例,适合常见 Web 场景(如 PHP-FPM + Nginx)。


一、基本思路

容器化 Debian + PHP 通常有两种方式:

  1. 直接用官方 PHP 镜像(推荐)
    • 基于 Debian
    • 体积小、维护好
  2. 自己基于 debian 镜像装 PHP
    • 更可控
    • 适合特殊依赖

二、方式一:使用官方 PHP 镜像(推荐)

1️⃣ 项目结构示例

project/
├── dockerfile
├── index.php
└── nginx/
    └── default.conf

2️⃣ Dockerfile(PHP-FPM)

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

3️⃣ Nginx 配置(default.conf)

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;
    }
}

4️⃣ docker-compose.yml

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

三、方式二:基于 Debian 自己装 PHP

Dockerfile 示例

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 版本

php -v

✅ 安装扩展

docker-php-ext-install mbstring

✅ 调试

docker logs <container_id>

五、适合你的下一步

你可以告诉我:

  • ✅ 是 CLI 脚本还是 Web 应用?
  • ✅ 是否用 Laravel / ThinkPHP / 原生 PHP?
  • ✅ 是否需要 MySQL / Redis?

我可以帮你定制一份可直接用的 Docker 配置。

0 踩