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