我发现:

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

php -i | grep php.ini

我得到输出:

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

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

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

其中哪一个正在起作用?如何有两个 php.ini 文件?

有帮助吗?

解决方案

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

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

该系统的优点显然是根据上下文允许不同的配置。对于简化的例子,您可能想拥有 safe_mode 在Apache中,但在CLI模式下是不必要的。

您的 .ini 路径实际上是非常不寻常的。通常,默认.ini只是 php.ini 和cli .ini被称为 php-cli.ini 它们位于同一文件夹中。

我不是这个主题的专家,但这应该是基本想法。如果有人有任何更正,我很高兴听到他们的声音。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top