无法在Ubuntu 20.04上将PHP版本从8.0切换到7.4

6

我需要在Ubuntu 20.04上将PHP版本从8.0切换到7.4。我尝试运行以下命令(但没有成功):

sudo a2dismod php8.0
sudo a2enmod php7.4
sudo service apache2 restart

当我打开一个本地网页并运行 PHP info <?php phpinfo(); ?>,PHP 版本仍然是 8.0.3 而不是 7.4。
请注意,当我执行命令sudo a2enmod php7.4时,我会得到以下输出:
dan@dan:~$ sudo a2enmod php7.4
Considering dependency mpm_prefork for php7.4:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Enabling module mpm_prefork.
Considering conflict php5 for php7.4:
Enabling module php7.4.
To activate the new configuration, you need to run:
  systemctl restart apache2

也许这就是问题的根源?


看看这个,可能会有帮助,https://dev59.com/B1gQ5IYBdhLWcg3wnFLJ - Rudra
谢谢,我已经尝试过了,但没有成功 :( - Dan
这里也有同样的问题,你解决了吗? - Mohamad Pishdad
@MohamadPishdad 是的,有点儿...我转用docker了 :) - Dan
3个回答

9
使用update-alternatives设置默认的php版本:
sudo update-alternatives --set php /usr/bin/php7.4

如果出现错误信息 no alternatives for php,请参考U&L上我的答案,将 php 添加到 update-alternatives(将 python 替换为 php)。

谢谢,该命令可以更改命令行上的PHP版本,但不能更改Web服务器上的版本。请注意,Apache PHP模块和PHP命令行二进制文件是两个不同的东西:https://superuser.com/questions/969861/phpinfo-and-php-v-shows-different-version-of-php/1190483 - Dan
这是一个很好的切换CLI的答案。在Ubuntu 20.04上,我升级了PHP。Apache被升级到7.4.23,但CLI被升级到8.0.10。这个答案告诉我如何将CLI切换回7.4.23,这是我对Apache2和CLI的目标。 - John Hanley

7

我已经找到了答案。问题出在apache仍然尝试使用php-fpm-8.0,为了解决这个问题,我只需安装php7.4-fpm并使用以下命令禁用php8.0-fpm:

sudo systemctl stop php8.0-fpm
sudo systemctl disable php8.0-fpm

sudo apt install php7.4-fpm
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm

sudo a2disconf php8.0-fpm

谢谢您的回复,但是对我没有起作用 :( - Dan

2

谢谢,这对我也有用。我使用它启用了7.4并禁用了8.1,因为它们存在相同的问题:

sudo a2dismod php5.6
sudo a2dismod php8.1
sudo a2enmod php7.4
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm
sudo a2disconf php8.1-fpm
sudo service apache2 restart

在完成这个操作后,我仍然遇到了问题。我进入了apache2/conf-enabled/目录,发现php8.1-fpm.conf仍然被启用了,这是因为我犯了一个拼写错误。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接