Apache 仍使用 PHP 7,而服务器版本为 PHP 8

Apache 仍使用 PHP 7,而服务器版本为 PHP 8

我刚刚安装了 php 8(以下https://rpms.remirepo.net/wizard/) 在运行 CentOS 7 的 VPS 上。虽然在 CLI 中显示 PHP 8 可用,但当我使用 phpinfo() 提供网页时,它仍然显示 php 7。

PHP 8.0.7 (cli) (built: Jun  1 2021 18:43:05) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.7, Copyright (c) Zend Technologies

另外当我使用 Composer 检查时它显示 php 8

Running 2.1.3 (2021-06-09 16:31:20) with PHP 8.0.7 on Linux / 3.10.0-1127.18.2.el7.x86_64

但通过显示 phpinfo() 的网页显示

PHP Version 7.2.34

我运行的安装 PHP 的命令(从 remi 向导)是:

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

yum install yum-utils

yum  install php80

接下来我尝试使用“sudo systemctl restart httpd.service”重新启动 apache,但问题没有解决。我怀疑我仍然需要在两个 PHP 版本之间切换,但我不知道这是否是原因,也不知道该如何切换。

更多信息

$ which php
/usr/bin/php

$ whereis php
php: /usr/bin/php /usr/lib64/php /etc/php.ini /etc/php.d /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz

whereis php80
php80: /usr/bin/php80

$ httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov 16 2020 16:18:20

我进一步搜索(感谢 t3ln3t)找到了 apache 配置文件,它引用了一个 php7 配置文件,然后指向“libphp72.so”。所以我猜最终需要指向 php8。但是虽然安装了 php8,但我没有看到 libphp80.so 文件。

感谢您对我下一步该做什么以使 apache 配置指向新安装的 php8 版本提供的任何指导。

答案1

这可能是由于您的系统上安装了两个版本。如果您查看已安装的 rpm,您可能会发现 php7 已安装并位于系统上的其他地方。很可能位于 apache 用来查找内容的搜索路径中。另外,请查看您的 apache 配置文件。mod_php 很可能已命名,并且存在该模块的完整路径。

#rpm -qa | grep php

此命令应显示使用 rpm 安装的所有已安装的 php 版本。如果 php7 是从某人制作或找到的源发行版或 tarball 安装的,那就糟了!!!如果您找到 php7 rpm,请为您的网站安排一些维护(停机时间),删除旧的 php rpm,然后重新启动 apache。再次,请注意查看您的 apache 配置文件,因为 mod_php 可能已命名并且存在完整路径。您将需要修改它以让 apache 知道查看较新版本的 php。

相关内容