cli或mod_php中的phpinfo函数有什么区别?

时间:2009-06-02 05:58:03

标签: php

我认为一个名为phpinfo的函数是一个显示PHP环境的函数,但是我在命令行中执行的phpinfo结果是我在Web服务器上显示的phpinfo的结果不同。 为什么这些会有所不同? 我想成为同样的结果。

1 个答案:

答案 0 :(得分:1)

从您的网络服务器调用的PHP可以与您的命令行PHP配置完全不同。

这取决于您的网络服务器设置。如果您的网络服务器只需调用您的/usr/local/bin/php(或类似的)二进制文件,那么您将获得大部分相同的输出(除非没有任何CGI环境变量,例如HTTP_HOST,REFERRER等。

另一方面,如果你通过fast-cgi使用apache或php mod_php,你的phpinfo将返回不同的值,因为mod_php是一个单独编译的php模块。它不会调用您通过命令行访问的标准php命令。

造成差异的另一个可能原因是您的网络服务器使用的是其他php.ini文件。 php.ini文件告诉php要加载哪些扩展,基本上可以设置phpinfo()页面上的大多数参数。

除非您可以将您的网络服务器配置为不将任何HTTP标头发送到您的PHP脚本,并确保您的网络服务器的PHP设置与您的命令行匹配(或直接调用),否则很难使这些结果相同php构建。您可以确保php.ini文件相同 - phpinfo()包含当前加载的配置文件的名称。

我认为你无论如何都不能让它们相同,我不明白你为什么要让输出完全相同。如果您希望设置类似,则需要编辑相应的php.ini文件,以将设置更改为您希望的设置。此外,如果您无权访问php.ini文件,则可以使用php函数ini_set()在运行时设置一些配置变量。