BadouCMS使用docker运行环境之DNMP
1. 环境简介
DNMP 是基于 Docker 的 PHP 开发环境,集成了 Nginx、MySQL、Redis、PHP 多版本等,适合本地开发和测试。
2. 快速启动
- 克隆项目代码到本地:
git clone https://github.com/yourrepo/dnmp.git
cd dnmp- 启动服务:
docker-compose up -d- 访问服务:
- Nginx 默认监听 80 端口,浏览器访问 http://localhost 即可。
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.phpPATH_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
BadouCMS