我做了一些更改来分离生产和开发环境,以便每个人都拥有自己的php.ini文件。然而,生产仍然加载开发一个。如果我开发一个,那么没有加载文件根据phpinfo()声明:
Loaded Configuration File (none)
即使我撤消了所有更改,因此应该加载/ etc中的原始php.ini,仍然没有加载文件,这更令人沮丧。
我已经检查过apache和本地日志,没有任何异常现象。
每次更改后,我都会跑:
service httpd restart
在我的vhosts.conf中,我有如下所示的行:
<VirtualHost *:80>
ServerName dev.example.com
ServerAlias dev.example.com
DocumentRoot /srv/www/dev.example.com/
...
PHPINIDir /srv/www/dev.example.com/etc
...
<VirtualHost *:80>
ServerName stage.example.com
ServerAlias stage.example.com
DocumentRoot /srv/www/stage.example.com/
...
PHPINIDir /srv/www/stage.example.com/etc
...
在php.ini中,所有不同之处:
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
CentOS上的PHP 5.3.3
如何解决这个问题,以便为每个环境加载正确的文件?
答案 0 :(得分:0)
由于您正在使用PHPINIDir
指令并且您的Apache正常工作,这意味着您将PHP作为Apache模块运行。那里只有一个PHP解释器的全局实例,因此只能有一个php.ini。
您需要将PHP作为FastCGI或provide settings in a different file运行。