![Apache 仍使用 PHP 7,而服务器版本为 PHP 8](https://linux22.com/image/767506/Apache%20%E4%BB%8D%E4%BD%BF%E7%94%A8%20PHP%207%EF%BC%8C%E8%80%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%89%88%E6%9C%AC%E4%B8%BA%20PHP%208.png)
我刚刚安装了 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。