windows - 让 WAMP 在 Windows Server 2012 上运行

标签 windows wamp

两周前,我启动了一个装有 Windows Server 2012 的 AWS EC2 实例。然后我安装了最新版本的 wamp(我必须使用 apache,因为我正在做通配符域,而 IIS 不支持它们)。我将我的站点(文件、数据库记录和 DNS 条目)从旧服务器迁移到新服务器。

WAMP 可以正确运行站点 5 到 10 分钟,然后大约需要 30 秒来加载页面。

经过一番搜索,我发现这是因为 Windows Server 2012 默认设置为使用 IPv6,而 apache 设置为使用 IPv4。我访问过的网站为我提供了几项解决此问题的方法 - 其中包括:

1) 从主机文件中注释掉::1 2) 禁用 IIS(在 Windows Server 2012 中默认启用) 3) 将我的 apache.conf 文件更改为“Listen 0.0.0.0:80”而不是“Listen 80” 4) 将我的 apache.conf 文件更改为“ServerName localhost”而不是“ServerName 127.0.0.1”

我可以重新启动所有 wamp 服务,页面将再次立即开始加载,但又过了 5 到 10 分钟,同样的问题出现了,页面需要永远加载。

我已经进行了上述所有这些更改,但问题仍然存在。除了启动未运行 Windows Server 2012 的新服务器外,我没有其他想法。

有没有人以前遇到过这个问题并且知道修复方法?

最佳答案

我相信这是在 Windows 上运行的 Apache 中的一个错误。它与释放连接有关,或者更确切地说不这样做

已知将这些添加到 httpd.conf 中会有帮助

AcceptFilter http 无 AcceptFilter https 无 启用发送文件关闭 关闭 EnableMMAP

该指令通过协议(protocol)类型启用操作系统特定的监听套接字优化。 在 Windows 上,没有人使用 accept() 而不是 AcceptEx() 并且不会在连接之间回收套接字。这对于驱动程序支持损坏的网络适配器以及一些虚拟网络提供商(例如 vpn 驱动程序或垃圾邮件、病毒或 spy 软件过滤器)很有用。

在进行更改之前备份您的 httpd.conf。在将这些参数放入 httpd.conf 之前,检查这些参数是否已经存在于 httpd.conf 的某处! !!!!!!

关于windows - 让 WAMP 在 Windows Server 2012 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22356843/

相关文章:

php - 防止 netbeans php Debug 在浏览器中打开新选项卡

apache - 运行 wamp 3.1.0 的 3 项服务中的 1 项....不是 2 项中的 1 项...而是 3 项中的 1 项...WTH

WAMP 虚拟主机错误日志位置不起作用?

windows - 如何将 Subversion 存储库发布到本地 IIS?

windows - 列出cmd中的所有文件夹和子文件夹,但不包括文件

html - 隐藏仅在 Windows 上显示的无用滚动条

php - 查询未在 php 中运行

php - 使用 Qt 和 php.exe 发送邮件

Java:写入 Windows 临时目录中的 tempFile

c++ - 从 Matlab 运行 exe 代码。在 cmd (dos) 中工作的完全相同的指令在 Matlab 中失败