我发现:
当我在终端上键入以下内容时:
php -i | grep php.ini
我得到了输出:
加载的配置文件是@ /etc/php5/cli/php.ini
但是,从phpinfo()
开始,我会看到:
加载的ini文件是@ /etc/php5/apache2/php.ini
其中哪一个现在正在运作?怎么可能有两个php.ini
个文件?
答案 0 :(得分:33)
取决于您从哪里运行PHP。如果从命令行运行它,则在通过apache运行时使用cli/php.ini
和apache2/php.ini
。
您正在通过浏览器执行phpinfo()
,因此您可以获得/etc/php5/apache2/php.ini
作为答案。从终端运行php -r "phpinfo();" | grep "Loaded Configuration"
应输出CLI ini。相同的功能,上下文变化。
该系统的优点显然是根据上下文允许不同的配置。有关简化示例,您可能希望在apache中启用safe_mode
,但在CLI模式下则不需要。{/ p>
您的.ini
路径实际上非常不寻常。通常,默认.ini仅为php.ini
,CLI .ini称为php-cli.ini
,它们位于同一文件夹中。
我不是这方面的专家,但这应该是基本的想法。如果有人有任何更正,我会很高兴听到他们。