我更新了我的php版本到8.1,在/etc/php
中我有两个目录:8.0和8.1 -我不确定是否以及如何摆脱8.0?
然而,我最担心的是,sudo php -v
确实会像预期的那样返回:
PHP 8.1.2 (cli) (built: Jan 24 2022 10:42:33) (NTS)
但是,如果我在脚本中使用phpinfo()
,它将返回PHP Version 8.0.15
。我错过了什么?为了在我的脚本中使用当前的PHP版本,我应该做些什么?
编辑:sudo a2dismod php8.0
给出Module php8.0 already disabled
,而sudo a2enmod php8.1
返回:
Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Module php8.1 already enabled
4条答案
按热度按时间eimct9ow1#
您需要重新配置Apache服务器以使用所需的PHP版本。检查加载的Apache配置文件,例如
httpd.conf
或您的操作系统特定的配置文件。您需要通知ApacheWeb服务器使用您安装的PHP 8.1版本。
如果您使用 Debian 或类似的操作系统,您可以使用以下命令禁用旧的PHP模块并启用新的PHP模块。
6fe3ivhb2#
正如这个答案中所记录的,如果你停止并重新启动Apache,它将从磁盘加载最新的PHP版本。
bnlyeluc3#
5vf7fwbs4#
我不知道为什么这个问题没有得到妥善解决。
我正在使用不同的PHP项目,有不同的PHP版本,因此我在本地使用ppa:ondrej/php有多个PHP版本。
在理想情况下,CLI和Apache2应该引用相同的PHP确认文件,但Apache2有自己的配置文件。
CLI和FPM配置文件不同,因此CLI和Apache PHP版本不同。
service--status-all
上面的命令将列出Linux中的所有服务状态,我们可以看到类似于下面的结果
这就是问题所在-运行多个PHP FPM。
要解决此问题-例如在Apache2中保持PHP 8.1运行
现在在CLI中,
php -v
将返回php8.1,Apachephpinfo();
也将显示php8.1我正在使用一些bash脚本来使生活变得简单。
在终端上,我正在运行
php74
,php80
,php81
和php82
命令来设置CLI和Apache2中的php版本。