启动 apache2 服务器时出现以下错误消息:
$ sudo /etc/init.d/apache2 start * 启动 Web 服务器 apache2
(98)地址已在使用中:make_sock:无法绑定到地址 0.0.0.0:443 没有可用的监听套接字,正在关闭 无法打开日志 操作“启动”失败。Apache 错误日志可能有更多信息。[失败]
以下是输出命令netstat -lntup:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:28017 0.0.0.0:* LISTEN 941/mongod
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1355/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 687/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 854/cupsd
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 941/mongod
tcp6 0 0 :::22 :::* LISTEN 687/sshd
tcp6 0 0 ::1:631 :::* LISTEN 854/cupsd
udp 0 0 0.0.0.0:22543 0.0.0.0:* 1049/dhclient
udp 0 0 127.0.1.1:53 0.0.0.0:* 1355/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 1049/dhclient
udp 0 0 0.0.0.0:46027 0.0.0.0:* 901/avahi-daemon: r
udp 0 0 0.0.0.0:5353 0.0.0.0:* 901/avahi-daemon: r
udp6 0 0 :::38743 :::* 901/avahi-daemon: r
udp6 0 0 :::27403 :::* 1049/dhclient
udp6 0 0 :::5353 :::* 901/avahi-daemon: r
有人知道为什么以及应该如何修复它吗?
谢谢!!!
答案1
当您有两个指令针对相同的 IP/端口组合时,Apache 会给出相同的错误消息Listen
。第一个指令成功且无错误,第二个指令发现某个程序已在监听该端口并中止。
在不同的文件中找到这些指令并不罕见,例如 vhost 文件或顶层文件(如ports.conf
或 )ssl.conf
。
您可以使用grep -r Listen /etc/apache2
或找到它们grep -r Listen /etc/httpd
,具体取决于您使用的是基于 Debian 的发行版还是基于 RedHat 的发行版。
答案2
在这种情况下,我通过运行以下命令获得了成功:
/usr/bin/pkill apache2 && /etc/init.d/apache2 start
目的是杀死任何残留的 apache 进程(“pkill”),然后启动 apache
答案3
Apache 尝试使用的端口已被使用,使用命令sudo netstat -lntup
并查找 :443,您将找到一个条目。无论监听端口 443 的是什么,请停止它并尝试重新启动 Apache,这样就可以了。