全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

用 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

php: image: php:8.2-fpm volumes:

  • ./src:/var/www/html
  • ./php/php.ini:/usr/local/etc/php/php.ini environment:
  • 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,而应:

  • 单独加一个 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 请求 proxy 到 php:9000,且 PHP 容器内有对应文件
  • 修改 PHP 配置(如 upload_max_filesize)后,需重启 PHP 容器:docker-compose restart php


# mysql  # php  # html  # docker  # apache  # nginx  # 端口  # ai  # proxy  # 环境变量  # 常见问题  # 架构  # 继承  # default  # 数据库  # mariadb  # http  # 镜像  # 自定义  # 或其他  # 网络通信  # 多个  # 可选  # 内有  # 可直接  # 而非  # 重启 


相关文章: 如何通过.red域名打造高辨识度品牌网站?  SQL查询语句优化的实用方法总结  专业商城网站制作公司有哪些,pi商城官网是哪个?  网站制作服务平台,有什么网站可以发布本地服务信息?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  建站之星后台管理如何实现高效配置?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  制作网站的基本流程,设计网站的软件是什么?  金*站制作公司有哪些,金华教育集团官网?  建设网站制作价格,怎样建立自己的公司网站?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何在阿里云部署织梦网站?  网页设计与网站制作内容,怎样注册网站?  制作证书网站有哪些,全国城建培训中心证书查询官网?  javascript中对象的定义、使用以及对象和原型链操作小结  建站之星CMS建站配置指南:模板选择与SEO优化技巧  如何在建站之星绑定自定义域名?  如何在IIS服务器上快速部署高效网站?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  如何自定义建站之星模板颜色并下载新样式?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何通过NAT技术实现内网高效建站?  如何通过网站建站时间优化SEO与用户体验?  网站制作模板下载什么软件,ppt模板免费下载网站?  如何通过虚拟机搭建网站?详细步骤解析  如何选择高性价比服务器搭建个人网站?  网站按钮制作软件,如何实现网页中按钮的自动点击?  如何零基础在云服务器搭建WordPress站点?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  历史网站制作软件,华为如何找回被删除的网站?  如何在云服务器上快速搭建个人网站?  如何获取开源自助建站系统免费下载链接?  如何设置并定期更换建站之星安全管理员密码?  如何用景安虚拟主机手机版绑定域名建站?  建站之星导航配置指南:自助建站与SEO优化全解析  建站之星3.0如何解决常见操作问题?  名字制作网站免费,所有小说网站的名字?  个人摄影网站制作流程,摄影爱好者都去什么网站?  IOS倒计时设置UIButton标题title的抖动问题  小建面朝正北,A点实际方位是否存在偏差?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  大学网站设计制作软件有哪些,如何将网站制作成自己app?  网站代码制作软件有哪些,如何生成自己网站的代码?  如何用wdcp快速搭建高效网站?  韩国服务器如何优化跨境访问实现高效连接?  如何快速生成凡客建站的专业级图册?  婚礼视频制作网站,学习*后期制作的网站有哪些? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。