docker怎么部署php环境_dockercompose配置php服务【容器】

admin 百科 15
推荐用 docker-compose 一键部署 PHP-FPM + Nginx 分离架构,PHP 容器安装 pdo_mysql 等扩展,Nginx 通过 fastcgi_pass php:9000 代理,共享代码卷并基于自定义网络通信。

docker怎么部署php环境_dockercompose配置php服务【容器】-第1张图片-佛山资讯网

用 Docker 部署 PHP 环境,推荐用 docker-compose 一次性拉起 PHP + Nginx(或 Apache)+ MySQL(可选)组合,比手动 run 多个容器更清晰、易维护。

基础结构:PHP-FPM + Nginx 分离部署

现代 PHP 容器化推荐「Nginx 负责静态文件和反向代理,PHP-FPM 单独容器处理动态请求」,职责分离、便于扩缩容和日志隔离。

  • Nginx 容器挂载你的 PHP 项目代码,并通过 fastcgi_pass 指向 PHP-FPM 容器(如 php:9000
  • PHP 容器基于 php:8.2-fpm(或其他版本),安装常用扩展(pdo_mysql、gd、mbstring 等),并挂载相同代码目录
  • 两者通过自定义 Docker 网络通信,无需暴露 PHP-FPM 端口到宿主机

docker-compose.yml 关键配置示例

以下是最小可用的 docker-compose.yml(含 PHP-FPM 和 Nginx):

version: '3.8'
services:
  nginx:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www/html   # 本地代码映射
      - ./nginx/conf.d:/etc/nginx/conf.d  # 自定义 nginx 配置
    depends_on:
      - php
<p>php:
image: php:8.2-fpm
volumes:</p><ul><li>./src:/var/www/html</li><li>./php/php.ini:/usr/local/etc/php/php.ini
environment:</li><li>TZ=Asia/Shanghai

登录后复制

注意:
– Nginx 的 conf.d/default.conf 需配置 fastcgi_pass php:9000(不是 127.0.0.1:9000),因跨容器通信靠服务名
– PHP 容器默认监听 9000/tcp,且只绑定在 0.0.0.0:9000(Docker 内部可直接访问)

让 PHP 支持 MySQL 或其他扩展

如果项目需连接数据库,不建议在 PHP 镜像里装 mysql-client,而应:

标签: mysql php html docker apache nginx 端口 ai proxy 环境变量 常见问题

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~