Php

Apache 仍然使用 PHP 7,而伺服器版本是 php 8

  • June 13, 2021

我剛剛在執行 CentOS 7 的 VPS 上安裝了 php 8(在https://rpms.remirepo.net/wizard/之後)。雖然在 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

此外,當我與作曲家核對時,它顯示 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

我執行(從 remi 嚮導)安裝 PHP 的命令是:

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

我的進一步搜尋(thnx t3ln3t)將我帶到了 apache 配置文件,該文件引用了一個 php7 配置文件,然後指向“libphp72.so”。所以我猜測最終需要指向php8。但是雖然安裝了 php8,但我沒有看到 libphp80.so 文件。

感謝您對我下一步應該做什麼以使 apache 配置指向新安裝的 php8 版本的任何指導。

這可能是您的系統上安裝了兩個版本的情況。如果您查看已安裝的 rpm,您可能會發現 php7 已安裝並位於系統的其他位置。很可能在 apache 用來查找內容的搜尋路徑中。此外,請查看您的 apache 配置文件。mod_php 很可能已命名,並且存在該模組的完整路徑。

#rpm -qa | grep php

此命令應顯示使用 rpm 安裝的所有已安裝 php 版本。如果 php7 是從原始碼發行版或某人製作或找到的 tarball 安裝的,這將是 SUCK !!!如果您發現 php7 rpms,請為您的網站安排一些維護(停機時間),刪除舊的 php rpms,然後重新啟動 apache。同樣,請注意查看您的 apache 配置文件,因為 mod_php 可能已命名並且存在完整路徑。您將需要修改它以讓 apache 知道查看較新版本的 php。

引用自:https://serverfault.com/questions/1066563