防止apache释放80端口

Posted

技术标签:

【中文标题】防止apache释放80端口【英文标题】:Prevent apache to free the port 80 【发布时间】:2014-06-24 11:23:12 【问题描述】:

我已经在 Windows 7 - 64bit 上安装了 WAMP2.4。它工作正常,我也可以从本地主机和外部连接它。系统上未安装 Skype、IIS 或 VMware。在 “服务”mysql和apache都设置为自动启动并处于启动状态。 WAMP 的所有服务都在工作,图标为绿色。

现在,问题是,网站经常出现故障。当它关闭时,WAMP 图标仍然是绿色的,mysql 和 apache 仍然处于“启动”状态。然后我每次点击“重新启动所有服务”,它就开始工作了。

当它关闭时,我检查了 Apache>Services 的“测试端口 80”,它说该端口没有被使用。同时,当我在命令提示符下使用“netstat”检查端口 80 时,它会显示 apache 的进程 ID。如果我不采取任何行动,一段时间后它就会开始工作。有什么方法可以让 Apache 不释放 80 端口?或者,任何检查端口 80 的批处理命令,如果它空闲,重新启动 wamp 服务?

【问题讨论】:

在你的 httpd.conf 中添加以下 2 行后你能检查一下吗 1. AcceptFilter http none 2. AcceptFilter https none 没有。如果 apache 退出/崩溃,它会释放端口 80。相反,尝试找出它退出的原因 - 例如查看错误日志。 @nos,Apache 没有崩溃,它工作并显示在“已启动”服务以及 tast-manager 的服务列表中。 你确定你的系统上没有运行另一个 Apache 或者 MySQL。 WAMPServer 中的 Apache 服务称为 wampapache 而不是 Apache MySQL 服务称为 wampmysql。这两项服务都配置为手动启动,除非您更改它们,否则不会自动启动。 【参考方案1】:

之前听说过这个问题,现在想起来了。

尝试将这 2 个参数添加到您的 httpd.conf 文件中。

将它们放在应该已经存在于 httpd.conf # EnableSendfile on 的这一行之后

# AcceptFilter: Windows, none uses accept () instead of AcceptEx ()
# And do not recycle sockets between connections. This is useful
# Network interfaces for which the pilot is defective, and for
# Some network providers like *** pilots or filters
# Anti-spam, anti-virus or anti-spyware.
AcceptFilter http none
AcceptFilter https none

运气好的话,这应该可以阻止 Apache 挂起,我认为这是您的主要问题。

【讨论】:

以上是关于防止apache释放80端口的主要内容,如果未能解决你的问题,请参考以下文章

Windows之80端口被系统占用

XAMPP 服务器使用多个端口而不是端口 80

IIS和APACHE如何共用80端口?

如何在 localhost Windows 上释放我的端口 80?

如何在 localhost Windows 上释放我的端口 80?

如何在 localhost Windows 上释放我的端口 80?