我发现:
当我在终端上输入以下内容时:
php -i | grep php.ini
我得到了输出:
The Loaded Configuration file is @ /etc/php5/cli/php.ini
但是,从 phpinfo()
,我看到:
The loaded ini file is @ /etc/php5/apache2/php.ini
其中哪一项现在有效?怎么可能有两个 php.ini
文件?
最佳答案
取决于您从何处运行 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 模式下则没有必要。
您的 .ini
路径实际上很不寻常。通常,默认的 .ini 只是 php.ini
,CLI .ini 称为 php-cli.ini
,它们位于同一文件夹中。
我不是这方面的专家,但这应该是基本思想。如果有人有任何更正,我很乐意听到。
关于php - 2 个 php.ini 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3871768/