无法在 ubuntu 18.04 上启动 Apache HTTP 服务器
Failed to start The Apache HTTP Server on ubuntu 18.04
我正在尝试在我的 ubuntu 18.04 上创建一个网络服务器,所以我安装了 Apache2
但我无法启动它。
这是我 运行 systemctl status apache2.service
命令
时出现的内容
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.
我是新手,你能帮帮我吗
请仔细阅读。
执行以下命令,如果看到是apache,则在命令下方执行以下命令。
注意:您需要先安装 net-tools 包,然后才能 运行 netstat。 运行 sudo apt install net-tools
安装它。
sudo netstat -antup | grep 80
您应该用 <Your IP>:80
.
之类的内容检查行
请注意,当您在 运行ning 时卸载 Apache 时也可能会发生这种情况。
命令可以是:
sudo killall -9 program-name
如果端口 80 上的程序 运行ning 不可停止,请将程序名称替换为程序名称。让我知道它不起作用。
谢谢
我也遇到了同样的问题
先检查
$ sudo systemctl status nginx
如果 nginx
处于活动状态,则使用
停止此操作
$ sudo systemctl stop nginx
然后再次尝试在不同的终端启动 apache2 服务器。
先删除apache2
sudo apt-get --purge remove apache2
sudo apt-get autoremove
之后,如果有文件 (.conf) /etc/sites-available 使用
删除它们
rm example.com.conf
然后重新安装
sudo apt-get install apache2
现在它会修复
现在检查
sudo ufw allow 'Apache'
sudo systemctl status apache2
让我给出一个比前 2 个更笼统的答案。Apache 的一个可能问题是,当我们尝试 运行 它时,它可能会失败,因为端口 80 被另一个软件使用:
- 一个常见的案例是 nginx,Devashish Mishra 涵盖了它
- 在我的例子中,它是我部署的服务器应用程序(在 node.js 中,我不得不告诉 pm2 停止它)
- 一般来说,您可能想找到使用端口 80 的内容。这可能会像 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 systemctl stop nginx
)。同样,您可以停止或终止 (sudo killall -9 program-name
) 其他程序。但是,如果您需要它们,您还需要进一步配置 Apache 并重新运行它们(具体步骤在很大程度上取决于具体情况)。
我发现了这个问题,并且可以通过创建文件夹 /var/log/apache2
来解决它,我检查了 /var/log/
文件夹,结果发现没有 apache2 文件夹,就像在mysql 无法启动的案例。
从你的日志中看到
Feb 22 13:58:09 moment apachectl[2791]: AH00015: Unable to open logs
也许这会有所帮助
我正在尝试在我的 ubuntu 18.04 上创建一个网络服务器,所以我安装了 Apache2
但我无法启动它。
这是我 运行 systemctl status apache2.service
命令
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.
我是新手,你能帮帮我吗
请仔细阅读。
执行以下命令,如果看到是apache,则在命令下方执行以下命令。
注意:您需要先安装 net-tools 包,然后才能 运行 netstat。 运行 sudo apt install net-tools
安装它。
sudo netstat -antup | grep 80
您应该用 <Your IP>:80
.
之类的内容检查行
请注意,当您在 运行ning 时卸载 Apache 时也可能会发生这种情况。
命令可以是:
sudo killall -9 program-name
如果端口 80 上的程序 运行ning 不可停止,请将程序名称替换为程序名称。让我知道它不起作用。 谢谢
我也遇到了同样的问题
先检查
$ sudo systemctl status nginx
如果 nginx
处于活动状态,则使用
$ sudo systemctl stop nginx
然后再次尝试在不同的终端启动 apache2 服务器。
先删除apache2
sudo apt-get --purge remove apache2
sudo apt-get autoremove
之后,如果有文件 (.conf) /etc/sites-available 使用
删除它们rm example.com.conf
然后重新安装
sudo apt-get install apache2
现在它会修复
现在检查
sudo ufw allow 'Apache'
sudo systemctl status apache2
让我给出一个比前 2 个更笼统的答案。Apache 的一个可能问题是,当我们尝试 运行 它时,它可能会失败,因为端口 80 被另一个软件使用:
- 一个常见的案例是 nginx,Devashish Mishra 涵盖了它
- 在我的例子中,它是我部署的服务器应用程序(在 node.js 中,我不得不告诉 pm2 停止它)
- 一般来说,您可能想找到使用端口 80 的内容。这可能会像 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 systemctl stop nginx
)。同样,您可以停止或终止 (sudo killall -9 program-name
) 其他程序。但是,如果您需要它们,您还需要进一步配置 Apache 并重新运行它们(具体步骤在很大程度上取决于具体情况)。
我发现了这个问题,并且可以通过创建文件夹 /var/log/apache2
来解决它,我检查了 /var/log/
文件夹,结果发现没有 apache2 文件夹,就像在mysql 无法启动的案例。
从你的日志中看到
Feb 22 13:58:09 moment apachectl[2791]: AH00015: Unable to open logs
也许这会有所帮助