在Ubuntu 21.10中使用PHP7.4:Apache2启动失败

5
我尝试在Ubuntu 21.10运行PHP7.4,但出现了此错误。
apache2: Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 3 of /etc/apache2/mods-enabled/php7.4.load: Cannot load /usr/lib/apache2/modules/libphp7.4.so into server: /usr/lib/apache2/modules/libphp7.4.so: cannot open shared object file: No such file or directory

缺少libphp7.4.so

我安装了libphp7.4-embed,但问题仍然存在。文件已安装在/usr/lib/而不是/usr/lib/apache2/modules/中。符号链接没有帮助(undefined symbol: php7_module)。

如何在ubuntu 21.10中运行php7.4?

我尝试了一些命令

$ sudo a2enconf php7.4-fpm

Conf php7.4-fpm already enabled
$ sudo a2enmod php7.4-fpm

ERROR: Module php7.4-fpm does not exist!

在变得兴奋之前......经过了许多挫折,我只是删除了 sudo rm php7.4.load,然后出现了奇迹...它正常工作了。 - user30424
3个回答

9

OP和@Andrew都提出了一个不错的解决方案,但是由于我最近也遇到了同样的问题,所以让我把它们整理在一起,并增加一些额外的澄清步骤。

首先:你现在使用的/将要使用的PHP版本是什么?

php -v

返回 PHP 8.1.2,所以在我的情况下是 8.1

接下来,禁用导致问题的现有 apache2 模块:

sudo a2dismod php7.4

最后,启用您找到的那个:

sudo a2enmod php8.1

重新启动apache2,一切就准备就绪了。

sudo systemctl restart apache2

2

经过多次尝试和错误:

rm /etc/apache2/mods-enabled/php7.4.load

现在它可以正常工作了。

(在mods-enabled中只有一个php*:php7.4.conf。我不知道这是否重要。)


1
您可以通过以下命令删除此文件:sudo a2dismod php7.4 - Andrew Krizhanovsky
@AndrewKrizhanovsky,sudo a2dismod php7.4 在 php 8.1 上行得通了,谢谢。 - Geppettvs D'Constanzo

1

我需要继续使用php7.4,因此升级到8.1不是一个选择。在php7.4.load的第3行中提到了libphp7.4.so

LoadModule php7_module /usr/lib/apache2/modules/libphp7.4.so

当我谷歌搜索时,我发现我缺少了一个 PHP 模块。安装后,Apache2 就可以启动了。
sudo apt install -y libapache2-mod-php7.4

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