php -v和phpinfo()之间的不同结果

Jul*_*ien 7 php unix ubuntu phpinfo

我完全不明白为什么:

php -v
(or) php -m
Run Code Online (Sandbox Code Playgroud)

返回:PHP 7.0

和phpinfo()说我使用的是PHP 5.

这很奇怪,任何想法?


我正在使用Ubuntu和Nginx.下面是一个版画屏幕:

在此输入图像描述

在此输入图像描述

fav*_*tti 4

这并不奇怪。php -vrunning php-cli,它依次读取不同的 ini 文件。phpinfo()由您的网络服务器评估,该服务器读取特定于网络服务器的 ini 文件。

对于 Ubuntu,这些是:/etc/phpX/apache2/php.ini/etc/phpX/cli/php.ini,对于您的情况,它使用 nginx php-fpm,其配置位于/etc/phpX/fpm/php.ini


另外,在您的情况下,PHP7 可能是编译的或从其他存储库中提取的。如果您希望 nginx 选择 PHP7,您需要编译或安装php7-fpm或在这些行中进行某些操作。YMMV 取决于您如何将 PHP7 安装到您的系统上。


要了解其工作原理,请在 Web 文件夹内的文件系统上的任意位置创建一个文件,例如,使用test.php以下内容进行调用:

<?

phpinfo();

?>
Run Code Online (Sandbox Code Playgroud)

然后尝试运行:

# php test.php
Run Code Online (Sandbox Code Playgroud)

然后从 Web 浏览器访问此文件:http://path.to.your.site.com/path/to/test.php

您将看到 cli PHP 将报告版本 7.0,而 nginx 将继续报告 PHP5。