phpinfo()未更新到终端版本?

phpinfo()未更新到终端版本?,php,apache,terminal,Php,Apache,Terminal,My phpinfo()显示的版本为7.1.23。但当我在终端上执行php-v时,它显示的版本是7.3.10。如何使phpinfo版本与CLI/终端相同?在这个问题上,我遵循了user corretge的步骤: 我以为这会解决问题,但事实并非如此。我还在httpd.conf文件中添加了以下行: LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so <FilesMatch .php$> Se

My phpinfo()显示的版本为7.1.23。但当我在终端上执行php-v时,它显示的版本是7.3.10。如何使phpinfo版本与CLI/终端相同?在这个问题上,我遵循了user corretge的步骤: 我以为这会解决问题,但事实并非如此。我还在httpd.conf文件中添加了以下行:

LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so
<FilesMatch .php$>
    SetHandler application/x-httpd-php
</FilesMatch>
因此,无论出于何种原因,这样做都是行不通的。我一开始是通过Curl安装的,它没有更新phpinfo版本,而刚刚通过自制做了同样的事情,同样-没有更新的结果

我正在使用macOS High Sierra 10.13.6

运行此命令时:

/usr/local/bin/php -v
/usr/bin/php -v
结果是:

PHP 7.3.10
PHP 7.1.23
运行此命令时:

/usr/local/bin/php -v
/usr/bin/php -v
结果是:

PHP 7.3.10
PHP 7.1.23

尝试查看您的
/usr/bin/php
/usr/local/bin/php
实际调用的程序:

ll /usr/bin/php
ll /usr/local/bin/php
很可能,就像@Always Sunny所说的,您会发现您的机器上安装了两个版本的PHP。换句话说,这些链接正在调用不同的可执行文件

如果您只有一个php版本,那么x-httpd-php就可以工作了。 重新启动apache以确保加载新配置

您可能还需要执行下面提到的其他设置。我不确定是否有必要,但你可以试一试

如果您想强制web请求到特定的PHP版本,您有2个选项: 1.php.ini修改 在php_info()输出中,您将看到加载的配置文件-php.ini路径。转到该路径并添加

AddHandler application/x-httpd-php73 .php
2.在网站的.htaccess文件中添加以下指令。 切换到PHP7.3

AddHandler application/x-httpd-php73 .php
切换到PHP7.1

AddHandler application/x-httpd-php71 .php
详细信息

PHP允许您加载多个PHP.ini文件,并在特定文件夹中覆盖这些文件

使用phpinfo()运行PHP脚本时,它会将最接近的PHP.ini加载到该文件中。它可以是根级别,也可以是上面文件夹层次结构中的任何其他php.ini

而当您从终端运行时,它将从环境变量中注册的路径运行PHP。当您从终端运行时,我怀疑apache配置是否会出现,因此更改apache配置中的任何内容都不会对终端执行产生影响。apachephp模块和PHP命令行二进制文件是两种互不干扰的不同东西


如果要强制终端使用所需的版本,有两个选项 1.更改环境变量以在特定版本中运行PHP 这将有一个指向PHP的路径。把那个拿开,把新的放在旁边

export PATH=/usr/local/php73/bin:$PATH 
2.更改PHP别名 也可以改用别名。将以下内容添加到.bash_配置文件中

alias php='/usr/local/php73/bin/php'

这与添加到.bash_配置文件时的导出路径相同。

您的MachinePP cli上安装了两个不同版本的php,apache模块使用不同的php可执行文件,它们是分开安装的。您需要为apache更新php模块。
libapache2 mod php*
@frz3993抱歉,我错过了您的更新回答,你是说我刚刚更新了apache的php模块,然后phpinfo()将更新为最新版本?如果是的话,我会怎么做?所以我只需在终端上键入这一行
libapache2 mod php*
?因为控制台使用php CLR,所以请更改配置。是的,我之前解决了这个问题,因为我在错误的文件夹中,但无论如何,谢谢,我会将您标记为最佳答案