2个php.ini文件

Hri*_*ari 21 php configuration-files php-5.3

我发现:

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

php -i | grep php.ini
Run Code Online (Sandbox Code Playgroud)

我得到输出:

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

但是,从中phpinfo(),我看到:

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

其中哪一个现在正在运作?怎么可能有两个php.ini文件?

Tat*_*nen 34

取决于你从哪里运行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并且它们位于同一文件夹中.

我不是这方面的专家,但这应该是基本的想法.如果有人有任何更正,我会很高兴听到他们.

  • @HrishikeshChoudhari"CLI和Apache的不同INI文件背后的基本思想是,可以在一个系统上运行多个虚拟服务器."100%并非如此.PHP CLI版本的`php.ini`用于命令行PHP的东西.Apache模块`php.ini`用于Apache PHP模块.两个截然不同的东西. (3认同)
  • 是的。你做对了。CLI 和 Apache 的不同 INI 文件背后的基本思想是,可以在单个系统上运行多个虚拟服务器。感谢您的回答。 (2认同)