一尘不染

2个php.ini文件

php

我发现:

当我在终端上键入以下内容时:

php -i | grep php.ini

我得到的输出:

加载的配置文件为@ /etc/php5/cli/php.ini

但是,从phpinfo(),我可以看到:

加载的ini文件为@ /etc/php5/apache2/php.ini

其中哪一个目前正在工作?如何有两个php.ini文件?


阅读 223

收藏
2020-05-29

共1个答案

一尘不染

取决于您从哪里运行PHP。如果从命令行运行它,则在通过apache运行时会使用cli/php.iniapache2/php.ini

您正在phpinfo()通过浏览器执行,因此得到/etc/php5/apache2/php.ini了答案。php -r "phpinfo();" | grep "Loaded Configuration"从终端运行应该输出CLI ini。功能相同,上下文更改。

该系统的优点显然是可以根据上下文允许不同的配置。对于一个简化的示例,您可能希望safe_mode在apache中启用它,但是在CLI模式下则不必要。

您的.ini路径实际上很不寻常。通常,默认的.ini是just php.ini,CLI .ini会被调用php- cli.ini,它们位于同一文件夹中。

我不是该主题的专家,但这应该是基本思想。如果有人有任何更正,我很乐意听到。

2020-05-29