Apache 没有在 linux mint 中启动

Posted

技术标签:

【中文标题】Apache 没有在 linux mint 中启动【英文标题】:Apache not starting in linux mint 【发布时间】:2018-09-01 13:10:49 【问题描述】:

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

apache2.service 的作业失败,因为控制进程以 >error 代码退出。详见“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.

还有 /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 并再次安装,安装灯 (sudo apt-get install lamp-server^)。 我已经从 available.sites 中删除了:mysite.conf ...

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

【问题讨论】:

【参考方案1】:

好吧,有点愚蠢的错误,我运行了 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,它的工作就像一个魅力!!!。

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

【讨论】:

就我而言,我只找到了libphp7.3.so 解决这个问题的正确方法是下面的 Audrius 解决方案。【参考方案2】:

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

【讨论】:

【参考方案3】:

在 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

【讨论】:

嗨@eugho,欢迎来到***!你想贡献和分享你的知识真是太好了。请注意:在回答之前,请仔细阅读问题。您会注意到原始海报的错误与您在答案中描述的完全不同。您的错误是“没有这样的文件或目录”,而他们的错误是“/etc/apache2/apache2.conf 第 140 行的语法错误”。 (在这里不是想成为一个混蛋,只是想帮助你提高)。 嗨@Stefan,请看一下发帖人自己给出的答案。他添加了与我提供的错误相匹配的附加错误日志。 嗨@eugho,对不起,***s 审查-UI 只要求我审查你的答案,所以我没有看到任何其他内容。 :) 无论如何,我真的希望您熟悉发布指南以获得好的答案:meta.stackexchange.com/questions/118582/… -- 您认为您的答案属于哪一类? :) -- 保持安全!【参考方案4】:

/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

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

非常感谢。我在 ubuntu 20.04 更新后遇到了这个问题。【参考方案6】:

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

php -v

然后写这个命令

sudo a2dismod php7.3

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

systemctl restart apache2

如果你想确定检查你的配置文件

apache2ctl configtest

你应该看到(语法OK) 最后,重启你的 apache 服务器 (sudo systemctl restart apache2)

【讨论】:

【参考方案7】:

我遇到了错误:

/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

【讨论】:

以上是关于Apache 没有在 linux mint 中启动的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PHP 添加到 Linux Mint 20(已安装 Apache2 和 MySQL)

Monodevelop 不会在 Mint 17 中启动

Linux Mint - 永久添加环境变量[关闭]

Linux mint 启动文本模式(不启动图形界面)

如何将linux mint卸载掉呢

我可以在Linux Mint 18(Cinnamon)上安装CUDA工具包吗?