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

絕刀狂花
发布: 2025-12-23 21:22:03
原创
786人浏览过
推荐用 docker-compose 一键部署 PHP-FPM + Nginx 分离架构,PHP 容器安装 pdo_mysql 等扩展,Nginx 通过 fastcgi_pass php:9000 代理,共享代码卷并基于自定义网络通信。

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

用 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,而应:

Studio Global
Studio Global

Studio Global AI 是一个内容生成工具,帮助用户客制化生成风格和内容,以合理价格提供无限生成,希望将 AI 带给全世界所有人。

Studio Global 405
查看详情 Studio Global

立即学习PHP免费学习笔记(深入)”;

  • 单独加一个 mysqlmariadb 服务(用官方镜像),通过 depends_on环境变量连接
  • 在 PHP 容器中启用扩展:可写 Dockerfile 继承官方镜像,例如:
FROM php:8.2-fpm
RUN docker-php-ext-install pdo_mysql mysqli gd mbstring exif pcntl
RUN pecl install xdebug && docker-php-ext-enable xdebug
登录后复制

然后在 compose 中用 build: . 替代 image:,构建带扩展的定制镜像。

快速验证与常见问题

启动后执行:docker-compose up -d,再访问 http://localhost:8080

  • 若看到 File not found.:检查 Nginx 配置中 rootfastcgi_param SCRIPT_FILENAME 路径是否匹配挂载路径
  • 若 PHP 文件被下载而非执行:确认 Nginx 已正确将 .php 请求 proxyphp:9000,且 PHP 容器内有对应文件
  • 修改 PHP 配置(如 upload_max_filesize)后,需重启 PHP 容器:docker-compose restart php

以上就是docker怎么部署php环境_dockercompose配置php服务【容器】的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号