您现在的位置是:首页 >> BadouCMS教程BadouCMS教程

BadouCMS使用docker运行环境之DNMP

董哥2025-07-253次围观

1. 环境简介

DNMP 是基于 Docker 的 PHP 开发环境,集成了 Nginx、MySQL、Redis、PHP 多版本等,适合本地开发和测试。

2. 快速启动

  1. 克隆项目代码到本地:

   git clone 
   cd dnmp
  1. 启动服务:

   docker-compose up -d
  1. 访问服务:

3. 目录结构说明

  • services/nginx/conf.d/:Nginx 虚拟主机配置

  • services/phpXX/:不同 PHP 版本配置

  • data/:数据持久化目录(MySQL、Redis 等)

  • www/:项目代码目录

4. Nginx 配置与 PATH_INFO 说明

以 services/nginx/conf.d/badoucms.conf 为例:

location ~ ^/admin.php {
    fastcgi_split_path_info ^(/admin.php)(/.*)$;
    fastcgi_pass   php82:9000;
    fastcgi_index  admin.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO $fastcgi_path_info;
    include        fastcgi_params;
}
  • fastcgi_split_path_info 用于将 URL 拆分为脚本名和 PATH_INFO。

  • 例如访问 /admin.php/index/login 时:

  • SCRIPT_FILENAME = /www/badoucms/public/admin.php

  • PATH_INFO = /index/login

  • 这样 PHP 框架可以根据 PATH_INFO 路由到正确的控制器和方法。

5. 常见问题

  • PATHINFO 不正确导致 action 错误
    检查 Nginx 配置的 fastcgi_split_path_info 是否为 ^(/admin.php)(/.*)$,否则 PHP 获取不到正确的 PATHINFO,路由会异常。

  • 端口冲突
    如本地 80 端口被占用,可在 docker-compose.yml 修改端口映射。

6. 其他操作

  • 查看服务状态:

  docker-compose ps
  • 停止服务:

  docker-compose down
  • 查看日志:

  docker-compose logs nginx

7. 参考


站点信息