在共享开发环境中覆盖PHP.ini

Par*_*lia 0 php php-ini

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

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

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

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

当我查看@ "加载配置文件"时,它仍然会读取

/etc/ 代替 ../htdocs/

有谁知道怎么了?

Ama*_*ali 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它可以很容易地设置许多工作池.

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

  • 使用ini_set()重写你的脚本里面的变化.ini_set()尽管如此,并非所有配置指令都可以更改.
  • 在目录中使用.htaccess文件覆盖文件中的配置php.ini.

(某些部件改编自#1438393)

希望这可以帮助!