无法在ubuntu 18.04上启动Apache HTTP服务器

2eafrhcq  于 2022-12-29  发布在  Apache
关注(0)|答案(6)|浏览(229)

我尝试在ubuntu18.04上创建一个Web服务器,因此安装了Apache2,但无法启动它。

apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: failed (Result: exit-code) since Sat 2020-02-22 13:58:09 CET; 34s ago
  Process: 2791 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
Feb 22 13:58:09 moemen apachectl[2791]: AH00558: apache2: Could not reliably determine the server's
Feb 22 13:58:09 moemen apachectl[2791]: (98)Address already in use: AH00072: make_sock: could not b
Feb 22 13:58:09 moemen apachectl[2791]: (98)Address already in use: AH00072: make_sock: could not b
Feb 22 13:58:09 moemen apachectl[2791]: no listening sockets available, shutting down
Feb 22 13:58:09 moemen apachectl[2791]: AH00015: Unable to open logs
Feb 22 13:58:09 moemen apachectl[2791]: Action 'start' failed.
Feb 22 13:58:09 moemen apachectl[2791]: The Apache error log may have more information.
Feb 22 13:58:09 moemen systemd[1]: apache2.service: Control process exited, code=exited status=1
Feb 22 13:58:09 moemen systemd[1]: apache2.service: Failed with result 'exit-code'.
Feb 22 13:58:09 moemen systemd[1]: Failed to start The Apache HTTP Server.

我是新手你能帮帮我吗

oxosxuxt

oxosxuxt1#

我也面临同样的问题。
第一次检查

$ sudo systemctl status nginx

如果nginx处于活动状态,则使用以下命令停止此操作

$ sudo systemctl stop nginx

然后再次尝试在不同的终端中启动Apache2服务器。

68bkxrlz

68bkxrlz2#

首先删除apache2
一个月一个月一个月一个月一个月
之后,如果有文件(. conf)/etc/sites可用,请使用以下命令将其删除

rm example.com.conf

然后重新安装sudo apt-get install apache2
现在将修复并立即检查sudo ufw allow 'Apache'sudo systemctl status apache2

6yt4nkrj

6yt4nkrj3#

让我给予一个比前2个更一般的答案。Apache的一个可能问题是,当我们试图运行它时,它可能会失败,因为端口80被另一个软件使用:

  • 常见的例子是由Devashish Mishra覆盖的nginx
  • 在我的例子中,它是我部署的服务器应用程序(在node.js中,我必须告诉pm2停止它)
  • 一般来说,您可能希望找到使用端口80的设备。2这可以按照Chi.C.J. Rajeeva Lochana的建议进行:安装netstat如果没有(sudo apt install net-tools),请使用它:sudo netstat -antup | grep 80。它将显示一些可能包含:::80<your IP>:80的行,这些行将说明正在侦听端口的内容

一旦你找到了监听80端口的东西,你必须决定如何使用它,例如,如果它是nginx,而你不使用它,你可以像Devashish Mishra建议的那样:同样,你也可以停止或终止(sudo killall -9 program-name)其他程序。但是,如果你需要它们,你还需要进一步配置Apache并重新运行它们(具体步骤取决于具体情况)。

p3rjfoxz

p3rjfoxz4#

请仔细阅读。

执行以下命令,如果您看到它是apache,则在命令下面执行以下操作。

注意:在运行netstat之前,您需要安装net-tools软件包。运行sudo apt install net-tools来安装它。

sudo netstat -antup | grep 80

应该使用类似<Your IP>:80的语句检查该行。
请注意,当您在Apache运行时卸载它时,也可能会发生这种情况。
该命令可以是:

sudo killall -9 program-name

如果在端口80上运行的程序不可停止,请用程序名替换程序名。让我知道它不起作用。谢谢。

mspsb9vt

mspsb9vt5#

我发现了这个问题,并能够通过创建一个文件夹/var/log/apache2来解决它,我检查了/var/log/文件夹,结果发现没有apache2文件夹,就像mysql不会启动的情况一样。
从你的日志上看到
Feb 22 13:58:09 moment apachectl[2791]: AH00015: Unable to open logs
也许这个能帮上忙

jv2fixgn

jv2fixgn6#

1.在你的终端上。
1.类型:sudo stop /etc/init.d/apache2
响应将是:
停止apache2(通过systemctl):apache2.service.
1.现在启动服务器:

sudo /opt/lampp/lampp start

如果你安装灯正确,这应该工作

相关问题