当我运行“sudo /usr/sbin/apache2ctl graceful”时,我收到以下消息:
httpd 未运行,尝试启动 (98) 地址已在使用中:make_sock:无法绑定到地址 0.0.0.0:80 没有可用的监听套接字,正在关闭无法打开日志
当我运行“sudo netstat -lnp | grep :80”时,我得到:
tcp 0 0 127.0.0.1:80 0.0.0.0:* 侦听 845/aolserver4-nsd
我假设 aolserver 也在运行?我该如何让 apache 运行?
答案1
您已在运行另一个 Web 服务器。您必须先停止或终止它,然后才能启动 Apache(或将其中一个更改为非标准端口,即端口 80 以外的其他端口)。
答案2
您有一个名为 aolserver4-nsd 的正在运行的进程已绑定到 127.0.0.1:80,因此 apache 绑定到 0.0.0.0:80 的尝试被拒绝。虽然乍一看似乎两者之间应该没有冲突,但地址 0.0.0.0 是特殊的“任意地址”,绑定到它实际上会绑定到所有可用的网络接口(包括环回 127.0.0.1)。
有多种方法可以进行:
您可以停止 aolserver4-nsd,以便它释放对 127.0.0.1:80 的绑定。然后您可以启动 apache,它应该成功绑定到 0.0.0.0:80。如果以这种方式继续,您只能同时运行两个进程中的一个。
您可以配置 aolserver4-nsd 或 apache 绑定到非标准端口(即端口 80 以外的端口)。(听指令是您需要为 apache 配置的内容。这将允许您同时运行两个进程。
您可以将 apache 配置为绑定到特定地址,而不是特殊的“任意地址”0.0.0.0。当然,您需要将 apache 配置为听到您服务器网络接口上存在的地址(但不是 127.0.0.1)。这还将允许 aolserver4-nsd 和 apache 同时运行。
答案3
您可以使用以下方式检查正在运行的 Apache 进程
ps -efwww | grep apache
或者根据发行版,grep httpd
答案4
尝试使用“netstat -nap”查看哪些端口已打开