【发布时间】:2012-07-06 18:50:22
【问题描述】:
设置
我已经安装了 nginx 1.2.2 和 PHP 5.4.4。我已将 PHP 配置为使用 FastCGI 运行的 nginx。
nginx配置sn-p:
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 并且没有遇到问题。在这种情况下请求分享版本号和平台。
【问题讨论】:
-
是的,Bruni 在 2 年多前被报告后,它看起来仍然是一个错误。但我把希望寄托在可能遇到同样问题的 nginx 用户身上。
-
这不是错误。请参阅下面的帖子。