php.ini:没有加载目标文件

时间:2014-04-10 11:29:02

标签: php

我做了一些更改来分离生产和开发环境,以便每个人都拥有自己的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

如何解决这个问题,以便为每个环境加载正确的文件?

1 个答案:

答案 0 :(得分:0)

由于您正在使用PHPINIDir指令并且您的Apache正常工作,这意味着您将PHP作为Apache模块运行。那里只有一个PHP解释器的全局实例,因此只能有一个php.ini。

您需要将PHP作为FastCGI或provide settings in a different file运行。