设置
我已经安装了 nginx 1.2.2 和 PHP 5.4.4。我已经将 PHP 配置为运行为 FastCGI 的 nginx。
nginx 配置片段:
location ~ \.php$ {
root E:/Websites/localhost;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME E:/Websites/localhost/$fastcgi_script_name;
include fastcgi_params;
}
我有许多在同一系统上运行的本地虚拟站点。为了自定义每个要求,我在每个站点的根文件夹中创建了 .user.ini 文件,根据 PHP 文档,该文件也应该适用于子文件夹。
请注意,这是一个开发环境,不是实时的。所以我可以灵活地定制一些东西。
问题
当我从浏览器访问任何站点时,它都可以正常工作,除非我不深入某个子文件夹。似乎 .user.ini 在子目录中不起作用 - 至少在我的配置中。
根据 PHP 文档(http://www.php.net/manual/en/configuration.file.per-user.php):
除了主 php.ini 文件之外,PHP 还会扫描每个目录中的 INI 文件,从请求的 PHP 文件的目录开始,一直到当前文档根目录
求救
有没有人在 nginx 下配置 .user.ini - 请您帮帮我。
注意:有人在2009年报告了一个错误:https ://bugs.php.net/bug.php?id=50374
更多信息(编辑)
PHPInfo() 说(在根目录和子文件夹中):
* 服务器 API:CGI/FastCGI
* user_ini.filename:.user.ini(本地和主)
php_sapi_name() 说cgi-fcgi
这些值存在于根文件夹和子目录的 phpinfo() 中。所以 PHPInfo() 没有区别。
进一步确认它作为CGI/FastCGI运行的是根文件夹从.user.ini获取配置,而不是子文件夹。
// .user.ini
auto_prepend_file = "E:\Websites\localhost\user.ini.php"
和
// user.ini.php
<?php
printf('Hi from: %s', __FILE__);
?>
这实际上可能是一个错误,但有没有人以这种方式使用 nginx 配置 PHP 并且没有遇到问题。在这种情况下请求分享版本号和平台。