大约两周前,此事因未知原因开始发生。
# apache2ctl start
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:443
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
我之前运行的是 Ubuntu 15.10,同时升级到 16.04,这似乎并没有影响这个问题。
# cat /etc/apache2/ports.conf
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2013/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1972/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1972/sshd
tcp6 0 0 :::22 :::* LISTEN 1972/sshd
tcp6 0 0 :::443 :::* LISTEN 1972/sshd
我一直在使用letsencrypt在我的网站上使用 HTTPS 已经有一段时间了。
我该如何调试该问题,以及哪些信息与查找原因相关?
答案1
您的端口已被使用,如“(98)地址已在使用中”所示。您可以使用以下命令列出正在监听的端口以及哪些程序正在使用该端口:
sudo netstat -tlnp
一旦找到罪魁祸首,您必须调整该特定服务的设置,使端口再次可用。 在您的例子中,是 ssh 服务器“sshd”保留了它。
您可以在 中调整其设置/etc/ssh/sshd_config
。
之后重新启动 ssh 服务,您的端口应该可以再次供 apache 使用了。