0

我的开发环境与我的初创公司的其他开发人员共享,并在 Rackspace 上设置。php.ini 文件位于/etc/文件夹中,我相信这是一个集中位置,从中配置每个其他开发人员的开发环境设置。我想php.ini专门为自己定制这个文件,而不必在/etc/ 位置进行。

具体来说,我正在我的环境中设置 XDEBUG,其他一些开发人员不想要它,所以我不想给他们带来错误 :)

为此,我在 Internet 上扫描了如何专门为一个目录覆盖 php.ini 文件,并在 stackoverflow 上找到了这个页面

然后,我只需将 php.ini 文件复制粘贴到我的 htdocs 文件夹中,然后简单地回显phpinfo()(我在我的一个控制器中回显了这个,(使用 Zend))。index.php 文件位于 htdocs 文件夹中。

当我查看 @ "Loaded Configuration File"时,它仍然显示

/etc/代替 。./htdocs/

有谁知道怎么回事?

4

2 回答 2

5

通常,不可能php.ini基于每个目录加载,但在某些特殊情况下(CGI/FastCGI),它是:请参阅每个用户配置的文档

自 PHP 5.3.0 起,PHP 包含对每个目录的 .htaccess 样式 INI 文件的支持。这些文件仅由 CGI/FastCGI SAPI 处理。此功能淘汰了 PECL htscanner 扩展。如果您使用的是 Apache,请使用 .htaccess 文件以获得相同的效果。

除了主 php.ini 文件外,PHP 还会扫描每个目录中的 INI 文件,从请求的 PHP 文件的目录开始,一直到当前文档根目录(如 $_SERVER['DOCUMENT_ROOT'] 中设置的那样) )。如果 PHP 文件位于文档根目录之外,则仅扫描其目录。

如果您在一台服务器上托管多个独立站点,则无论如何都应该考虑使用 FastCGI,以使它们分开。php5-fpm设置许多工人池非常容易。

请注意,仅在用户 ini 文件中设置有限的 ini 选项子集。正如您所说,您无法控制服务器,可能的解决方法是:

  • 用于ini_set()覆盖脚本内的更改。不是所有的配置指令都可以使用ini_set()though来改变。
  • 使用目录中的 .htaccess 文件覆盖文件中的配置php.ini

(某些部分改编自#1438393

希望这可以帮助!

于 2013-07-17T00:07:12.137 回答
1

我不确定你是否理解了这篇文章。该帖子意味着如果您运行服务器并希望每个域 php.ini 您可以将模块作为每个域运行,因此每个用户都可以控制域 php.ini 但是看起来您的服务器不提供此功能,因此您需要我们htaccess 文件以覆盖 php.ini 设置。

通过覆盖这并不意味着您可以更改目录,这意味着可能添加模块或添加错误报告等......

您可以使用这篇文章来做到这一点:如何使用 xdebug 仅调试一个虚拟主机?

于 2013-07-17T00:06:12.457 回答