Apache 未在 linux mint 中启动

Apache not starting in linux mint

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

Job for apache2.service failed because the control process exited with >error code. See "systemctl status apache2.service" and "journalctl -xe" for details.

这是 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.

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

# Include module configuration:
IncludeOptional mods-enabled/*.load <--This one
IncludeOptional mods-enabled/*.conf

所以我尝试了:

sudo apt-get install libapache2-mod-php

然后我得到:

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

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

似乎没有任何效果,我一直在收到 "Job for apache2.service failed"。

好吧,有点愚蠢的错误,我 运行 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.

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

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

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

libphp7.2.so

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

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

然后重新启动 apache,它运行得非常棒!!!

注意:我不知道这是否是正确的方法,但它确实有效。

在我的例子中,升级到 Ubuntu 20.04 LTS 时失败了。模块 libphp7.2.so 而不是 libphp7.4.so 被加载到 conf 文件中 Melesio Marquez 的解决方案有效!

在 Ubuntu 20.04 上有同样的问题:

Syntax error on line 146 of /etc/apache2/apache2.conf: 
Syntax error on line 3 of /etc/apache2/mods-enabled/php7.3.load: 
Cannot load /usr/lib/apache2/modules/libphp7.3.so into server: /usr/lib/apache2/modules/libphp7.3.so: 
cannot open shared object file: No such file or directory

已更新 /etc/apache2/mods-enabled/php7.3.load 以指向 libphp7.4.so:

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

/etc/apache2/mods-enabled/ 中的文件是 /etc/apache2/mods-available/* 的符号链接 所以只需删除它们并创建新的。要在 /usr/bin/bar 处创建引用原始文件 /opt/foo 的符号链接,请使用:ln -s /opt/foo /usr/bin/bar

修复

cd /etc/apache2/mods-enabled/
rm php7.*
sudo ln -s /etc/apache2/mods-available/php7.4.load php7.4.load
sudo ln -s /etc/apache2/mods-available/php7.4.conf php7.4.conf

确保文件存在并且删除了旧链接。编辑符号链接将导致将来出现升级问题。

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

sudo a2dismod php7.3
sudo a2enmod php7.4
sudo apachectl configtest
sudo systemctl restart apache2

您可以从这里查看您的 PHP 版本 ->

php -v

然后写这个命令

sudo a2dismod php7.3

您应该看到模块 php7.3 已禁用。 要激活新配置,您需要 运行:

systemctl restart apache2

如果你想确定检查你的confs

apache2ctl configtest

您应该会看到(语法正确) 最后,重新启动您的 Apache 服务器 (sudo systemctl restart apache2)

我遇到了错误:

Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/

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

我用运行解决了

sudo apt install libapache2-mod-php7.4