禅道伪静态配置引出的 fastcgi 问题
背景
组里维护开发的系统是基于禅道(ZenTao)框架开发的,生产和测试环境都是搭在 Apache 上,官方文档也是便向于 Apache。最近头脑发热,在本地装了 Docker,配置了 DNMP 环境,想着把禅道跑起来试试,但是一直卡在伪静态和 pathinfo 的配置方面。
最终的解决方案
比较折腾的解题思路就不放出来了,直接放个参考答案。
1 | server { |
fastcgi.conf vs fastcgi_params
Nginx 安装之后会有两个 FastCGI 配置文件,一个是 fastcgi.conf,一个是 fastcgi_params。对比这两个文件,其实只有一点点的差异,fastcgi.conf 多了以下一行内容。
1 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |
原本 Nginx 只有 fastcgi_params,后来发现很多人在定义 SCRIPT_FILENAME
时使用了硬编码的方式,如下。为了规范用法便引入了 fastcgi.conf。
1 | fastcgi_param SCRIPT_FILENAME /var/www/foo$fastcgi_script_name |
目前,也比较推荐大家使用 fastcgi.conf 而不是 fastcgi_params。