Apache 未在 linux mint 中启动

Mel*_*uez 10 apache configuration linux-mint

好的,所以,我对 Apache 还很陌生:我试图创建一个本地网站(在 sites-available 文件夹中创建了 .conf 文件,在 var/www/mysite/ 等中创建了文件夹)然后,我停止了 Apache (使用systemctl stop apache2.service)但是现在如果我尝试重新启动(systemctl restart apache2.service)它会抛出这个错误:

apache2.service 的作业失败,因为控制进程以 > 错误代码退出。有关详细信息,请参阅“systemctl status apache2.service”和“journalctl -xe”。

这是 journalctl -xe 的结果:

Mar 22 16:33:13 user-xxx apache2[10403]:  * Starting Apache httpd web server apach
Mar 22 16:33:13 user-xxx apache2[10403]:  *
Mar 22 16:33:13 user-xxx apache2[10403]:  * The apache2 configtest failed.
Mar 22 16:33:13 user-xxx apache2[10403]: Output of config test was:
Mar 22 16:33:13 user-xxx apache2[10403]: apache2: Syntax error on line 140 of /etc/apache2/apache2.conf:
Mar 22 16:33:13 user-xxx apache2[10403]: Action 'configtest' failed.
Run Code Online (Sandbox Code Playgroud)

/etc/apache2/apache2.conf 中的第 140 行:

# Include module configuration:
IncludeOptional mods-enabled/*.load <--This one
IncludeOptional mods-enabled/*.conf
Run Code Online (Sandbox Code Playgroud)

所以我试过:

sudo apt-get install libapache2-mod-php
Run Code Online (Sandbox Code Playgroud)

我得到:

libapache2-mod-php is already the newest version (1:7.2+60+ubuntu16.04.1+deb.sury.org+1).
Run Code Online (Sandbox Code Playgroud)

我还尝试了什么:删除Apache并再次安装,安装灯(sudo apt-get install lamp-server^)。我已经从 available.sites 中删除了:mysite.conf ...

似乎没有任何效果,我不断收到“apache2.service 的工作失败”。

小智 18

在 ubuntu 更新到 20.04 后,我将 PHP 更改为 7.4

sudo a2dismod php7.3
sudo a2enmod php7.4
sudo apachectl configtest
sudo systemctl restart apache2
Run Code Online (Sandbox Code Playgroud)

  • 太感谢了。我在 ubuntu 20.04 更新后遇到了这个问题。 (3认同)

Mel*_*uez 15

好吧,有点愚蠢的错误,我运行apachectl configtest以获得更详细的错误,我得到:

apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax 
error on line 3 of /etc/apache2/mods-enabled/php7.0.load: Cannot load 
/usr/lib/apache2/modules/libphp7.0.so into server: 
/usr/lib/apache2/modules/libphp7.0.so: cannot open shared object file: 
No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.
Run Code Online (Sandbox Code Playgroud)

所以我检查了/etc/apache2/mods-enabled/php7.0.load并且在第 3 行它有:

LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.so
Run Code Online (Sandbox Code Playgroud)

但是在我的/usr/lib/apache2/modules文件夹中,我有一个更新的模块:

libphp7.2.so
Run Code Online (Sandbox Code Playgroud)

所以在/etc/apache2/mods-enabled/php7.0.load我把它改成:

LoadModule php7_module /usr/lib/apache2/modules/libphp7.2.so
Run Code Online (Sandbox Code Playgroud)

然后重新启动 apache,它的工作就像一个魅力!!!。

注意:我不知道这是否是执行此操作的正确方法,但是,它有效。

  • 解决此问题的正确方法是下面的 Audrius 解决方案。 (2认同)

小智 6

在我的情况下,升级到 Ubuntu 20.04 LTS 时发生了故障。模块 libphp7.2.so 而不是 libphp7.4.so 加载到 conf 文件中 Melesio Marquez 的解决方案有效!


小智 5

我遇到了错误:

/etc/apache2/apache2.conf 第 146 行语法错误: /etc/ 第 1 行语法错误

从 Ubuntu 18.04 升级到 20.04 后(php 7.3 到 php 7.4)

我通过运行解决了这个问题

sudo apt install libapache2-mod-php7.4
Run Code Online (Sandbox Code Playgroud)