【问题标题】:Very slow Apache on Windows 7Windows 7 上非常慢的 Apache
【发布时间】:2011-03-09 15:27:01
【问题描述】:

最简单的脚本:

<?php echo 'hello';

执行大约需要 3 秒。 Apache 在提供网页之前等待的时间似乎很长。

我尝试关闭杀毒软件、禁用 ipv6 等,但 Apache 仍然很慢。我该怎么办?

编辑:

附加信息:

  • Apache 2.2
  • PHP 5.2
  • 它只是动态 PHP 文件。立即提供静态文件 (html)
  • 与系统规格无关,是新电脑

Apache 错误日志中的 PHP 通知很少:

[Thu Jul 01 08:37:21 2010] [error] [client 127.0.0.1] PHP Notice:  Undefined variable: ref in D:\\data\\o\\WebProjects\\elearning\\application\\modules\\clientarea\\controllers\\ViewController.php on line 578, referer: http://elearning/clientarea/view/course/teid/1/cid/1

【问题讨论】:

  • 您的系统规格是什么?您使用的是哪个浏览器和版本?
  • 你运行的是什么版本的 Apache 和 PHP?
  • 在虚拟机上安装 LAMP 堆栈并在那里进行测试! (尝试重新安装 wampstack,也许安装出现问题?)
  • 当您说“直到它提供网页”时。它仅适用于 PHP 文件还是也适用于静态 html?
  • 您检查过 Apache 错误日志吗?

标签: php apache windows-7


【解决方案1】:

通常认为此问题是由您的防火墙干扰或在您的网络接口上启用 IPv6 引起的,但这些解决方案并没有为我解决问题。事实证明,默认情况下,“C:\Windows\System32\drivers\etc\hosts”中的 Windows 7 主机文件已将这一行注释掉:

# 127.0.0.1 localhost

在我的例子中,简单地取消注释这行将 localhost 性能更改回它应该是什么,而不是每次页面加载时烦人的 3-5 秒等待。请记住,您需要以管理员权限运行文本编辑器才能编辑 hosts 文件。

【讨论】:

  • 建议也将 ::1 行注释掉。对MS来说,这真是一种耻辱,很抱歉。由于这件愚蠢的事情,现在我的互联网连接比以前更快了。
【解决方案2】:

我遇到了同样的问题。修改主机文件并没有提高页面加载速度。找了几个小时,终于找到了解决办法。

我更改了我的 httpd.conf 文件,以便监听地址绑定到一个 IP 地址而不是所有可用的接口:

#Listen 80
Listen 127.0.0.1:80

现在所有网页都是即时加载的,而不是大约 10 秒。

希望对您有所帮助。

编辑:实际上它并没有解决问题,它仍然随机缓慢。 我不得不承认,我终于把我的网络服务器移到了一个 linux 虚拟机上,我再也没有观察到任何缓慢的响应时间。

【讨论】:

    【解决方案3】:

    我正在使用 Laravel 框架,对我有用的是在 php.ini 中更改指令 realpath_cache_size = 1M。它将加载时间从 3 秒更改为半秒!

    realpath_cache_size = 1M

    【讨论】:

      【解决方案4】:

      就我而言,默认情况下,标准文档根C:\PathToApache\htdocs 与本地网络上的其他用户共享。通过禁用该目录的共享,我大大提高了 Apache 的性能。现在每个请求只需不到一眨眼的时间。

      我希望这会对你们所有未来的读者有所帮助

      【讨论】:

        【解决方案5】:

        纯粹是为了帮助遇到 Apache 在 Windows 上运行缓慢这一困境的任何人,我通过在 C:\Windows\System32\drivers\etc\hosts 中注释掉 ::1 localhost 并添加 127.0.0.1 127.0.0.1 来解决这个问题。

        我发现我不得不在 Windows 服务中重新加载 Apache,因为我的网站会逐渐响应越来越慢。

        Apache htdocs 文件夹未共享,更改 httpd.conf 中的 Listen ... 行似乎不起作用,我的 C:\Windows\System32\drivers\etc\hosts 文件中已经有了 127.0.0.1 localhost 行,但是 @987654330 @ 线就在它的正下方。

        正如@Erwinus 在顶部帖子的评论中所建议的那样,我注释掉了该行并从this post 添加了127.0.0.1 127.0.0.1 行。服务器响应时间似乎已大大改善。

        【讨论】:

          【解决方案6】:

          唯一对我有帮助的是取消勾选网络适配器的 ipv4 参数中的“在 dns 中注册此连接的地址”框,DNS 设置下的按钮 -> 下两个复选框。

          【讨论】:

            【解决方案7】:

            使用任务管理器杀死不必要的进程。

            顺便说一句,你应该以?&gt;结束你的脚本。

            【讨论】:

            • 尾随 ?> 是不必要的(尽管有些人可能会争论它是否是好的做法),并且如果在 ?> 后面有空格,在某些情况下实际上会导致问题它
            • 不要成为“那些人中的一员”,但不要使用 ?> 是可以接受的,并且实际上是许多编码标准所推荐的。一方面,它确保没有尾随空格最终在标题之前推送输出。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-04-08
            • 2015-07-11
            • 2016-11-19
            • 1970-01-01
            • 1970-01-01
            • 2015-04-02
            相关资源
            最近更新 更多