【问题标题】:XAMPP on Win7 too slowWin7上的XAMPP太慢了
【发布时间】:2010-12-25 20:24:26
【问题描述】:

我在 Windows 7 Ultimate 上运行 XAMPP 1.7.1。除了速度之外,一切(Apache 和 MySQL)都运行良好。

当我打开http://localhost/ 时,我必须等待大约 1-3 秒才能查看网页。在我看来,最多应该是几百毫秒。

基本事实:

  • 在等待加载 localhost 网页时,状态栏显示“Waiting for localhost...”
  • CPU 仍处于空闲状态(加载时没有增加活动)
  • 在 localhost 上没有要求苛刻的 PHP 脚本,问题是当有简单的 phpinfo() 时,即使有很长很重的脚本。
  • 禁用 MySQL 服务器不会影响速度
  • 我的电脑:AMD Turion 64 X2; 1.6 GHz 双核、2 GB RAM、100 GB 硬盘

我制作了一个简单的基准 PHP 脚本来测试 HDD/CSS 速度:

<?php

function getmicrotime() { 
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

function testReadWrite() {
 $timeStart = getmicrotime();
 $filename = "test.txt";

 file_put_contents( $filename, '' ); // prepare empty file

 for ( $i = 0; $i < 1000; $i++ ) {
  $a = file_get_contents( $filename );
  file_put_contents( $filename, $a . '.' );
 }

 return round( getmicrotime() - $timeStart, 3 );
} 


function testCpuSpeed() {
 $timeStart = getmicrotime();

 $var = '';
 for ( $i = 0; $i < 100000; $i++ ) {
  $var = sha1( md5( $i * $i * $i * $i * $i * $i * $i * $i * $i * $i ) );
 }

 return round( getmicrotime() - $timeStart, 3 );
}

echo "Read/write #1: " . testReadWrite() . "<BR>";
echo "Read/write #2: " . testReadWrite() . "<BR>";
echo "Read/write #3: " . testReadWrite() . "<BR>";
echo "CPU speed #1: " . testCpuSpeed() . "<BR>";
echo "CPU speed #2: " . testCpuSpeed() . "<BR>";
echo "CPU speed #3: " . testCpuSpeed() . "<BR>";

?>

我的电脑结果:

  • 读/写:5.134 / 3.431 / 3.494
  • CPU 速度:0.816 / 0.767 / 0.795

一个虚拟主机结果:

  • 读/写:7.768 / 7.69 / 7.371
  • CPU 速度:0.232 / 0.234 / 0.234

我的服务器的一个结果(与我的 PC 几乎一样的空闲计算机,但快一点):

  • 读/写:0.088 / 0.168 / 0.185
  • CPU 速度:0.191 / 0.189 / 0.189

所以我不认为这是因为我的 PC 速度,但我确信还有其他问题。 您对 Windows 7(或 Vista)上的 XAMPP 速度有一些经验吗?

谢谢。

【问题讨论】:

  • 我知道这有点矫枉过正,但如果你无法弄清楚 任何事情,请尝试切换到 WAMP,对我来说在 Windows 7 上完美运行。
  • 谢谢!它解决了我的问题 :) 现在我要将所有虚拟主机从 XAMPP 移动到 WAMP。
  • 我也有这个问题,也发现是McAfee的原因。我正在使用 CodeIgniter 框架,而 McAfee 在 CI 写入日志文件时引入了延迟。我关闭了 McAfee,PHP 应用程序恢复了以前的速度。根据 BitDefender 示例,我没有看到忽略特定程序的选项...
  • 以管理员身份运行 XAMPP 对我有用

标签: php windows apache xampp


【解决方案1】:

如果 XAMP 在 Windows 7 下运行缓慢,防火墙设置没有影响。
Security Essentials 防病毒软件没有任何区别。

要解决这个问题,有两点影响很大:

1) 在 windows\system32\drivers\etc\hosts 添加以下行:

127.0.0.1 127.0.0.1

127.0.0.1 本地主机

2) 如果您使用的是 PHP,请在 XAMP php.ini 文件中取消注释 eaccelerator 行:

zend_extension = "C:\xampp\php\ext\php_eaccelerator_ts.dll"

做完这两个改动,重启Apache,速度会快很多。

【讨论】:

  • 好东西!他们帮助了我! (我没有添加双IP线,因为它对我没有意义)
  • @bruno.karklis 如果整个 Q 和 A 都被视为表面价值,那么 XAAMP 运行缓慢有许多“原因”。没有一个答案对每个人都是正确的。
  • 另外,以管理员身份运行 XAMPP。
  • 嗨,我正在遵循 JoeV 的建议,但我收到“加载 C:\xampp\php\ext\php_eaccelerator_ts.dll 失败”,因为我的 XAMPP 版本中不存在该 dll 文件(PHP 5.5.24)。我能做什么?
  • 对我没有帮助,我有一个供应商 css 和一个供应商 js,每个都需要 7 秒才能加载。不知道什么给。系统上的其他性能都很好。以为是xampp,可能是laravel。
【解决方案2】:

不确定这可能是您的问题的原因,但这可能是一个想法:您是否有一条看起来像这样的线:

::1 localhost

在您的主机中(如果我没记错的话,它应该是 C:\WINDOWS\system32\drivers\etc\hosts 之类的地方) 文件?

如果是,请通过在开头添加 # 来注释该行。


这样,关于 localhost 的唯一行应该是

127.0.0.1    localhost

这是一个 IPv4 地址;并且您评论的那个是 IPv6 - 这对于您正在尝试做的事情毫无用处。


正如我所说,不确定您的问题是否与此有关,但对于与您的 非常相似的问题,我已经多次看到此 sugestion 帮助(即在服务器上执行任何操作之前等待很长时间).

【讨论】:

  • 是的,我已取消注释该行。不幸的是,它没有帮助。
  • 哦,太糟糕了:-((我想你的意思是“评论”,而不是“未评论”)
  • 我尝试了一切,我想我的主机文件写得很好,傻瓜,这解决了整个问题,非常感谢!
  • 取消注释行:127.0.0.1 localhost 为我解决了问题
  • 添加行 127.0.0.1 localhost 为我解决了这个问题。
【解决方案3】:

用 XDEBUG 注释 PHP.ini 中的行:

;[XDebug]

    ;zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
    ;xdebug.profiler_append = 0
    ;xdebug.profiler_enable = 1
    ;xdebug.profiler_enable_trigger = 0
    ;xdebug.profiler_output_dir = "C:\xampp\tmp"
    ;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
    ;xdebug.remote_enable = 0
    ;xdebug.remote_handler = "dbgp"
    ;debug.remote_host = "127.0.0.1"
    ;xdebug.trace_output_dir = "C:\xampp\tmp"

我禁用了 Bitdefeender -> 没有结果 我向主机添加了行 -> 没有结果 我禁用了 xdebug - x2-x3 更快

最好的问候 巴托

【讨论】:

  • 这对我帮助很大。谢谢你:)
  • 这有很大的不同。那是多么奇怪。
  • 这通常会禁用调试吗?比如,错误日志、显示错误、堆栈跟踪等?显然,在我希望启用调试的开发环境中。
【解决方案4】:

Win 7 + XAMPP 也有类似的问题。问题是由我的防病毒软件引起的。当它启用时,即使是最简单的 PHP 页面也需要半秒以上的时间才能打开。包含大量链式 require_once() 的大型 PHP 脚本耗时超过 1.5 秒。禁用防病毒软件后,一切都在快速变亮(每个简单页面不到 100 毫秒,而真正繁重的内容大约需要 500 毫秒(100 多个链式 require_once()))。

我正在使用 bitdeffender,这是它的解决方案:

  1. 简单的解决方案 - 使用 xampp 时只需将 bitdefender 切换到 game mode
  2. “高级”解决方案 - 转到 Antivirus -&gt; Shield -&gt; Advanced Settings -&gt; Exclusions Tab 并在此处添加 httpd.exe 的排除项(位于您的 xampp 安装/apache/bin/ 中)。然后转到Antivirus -&gt; Exclusions 并为您的 php 文件所在的目录添加排除项。

完成上述步骤后别忘了重启 apache。

您可以选择安装 eaccelerator 以进一步加快速度。

顺便说一句:我发现 WAMP 作为一个项目不如 XAMPP 成熟。

附注 2:最好的解决方案是将旧 PC 用作 linux 服务器,一切都会像魅力一样运行 :-)

【讨论】:

    【解决方案5】:

    在阅读了几个答案后 - 他们都没有帮助(我什至删除了我的防病毒软件)。

    极大地帮助我的是禁用 xdebug。现在一切都变得非常快。

    【讨论】:

    • 对我帮助很大,谢谢。但是,如果我想保持 xdebug 开启并获得最高速度怎么办?
    【解决方案6】:

    有两个原因会导致这个问题。杀毒软件和主机文件中的设置

    1) 在 windows\system32\drivers\etc\hosts 中添加以下行:

    127.0.0.1 127.0.0.1

    127.0.0.1 本地主机

    2) 在您的防病毒软件中,排除包含您的文件的 document_root 文件夹(例如 c:/www 或 c:/xampp/htdoc 等)。要对此进行测试,您也可以暂时禁用防病毒软件,但长期解决方法是排除文件夹和子文件夹

    【讨论】:

      【解决方案7】:

      我的错误 - XAMPP 非常慢

      我的 Xampp 变慢并最终停止是由填充 php 日志的警告消息引起的 - 请继续阅读

      1 - 本地主机/127.0.0.1 - 没有帮助

      2 - 病毒软件干扰 - 没有帮助

      3 - 端口干扰更改为 8080 - 没有帮助

      4 - Wamp - 同样的事情 - 没有帮助

      最终一切都失败了,出现了 500 个错误。

      C:\xampp\php\logs\php_error_log 几乎是一个 MB (957K)

      对于记事本++来说太大了(我的第一个线索是我正在做某事)并且记事本需要几分钟才能呈现。

      数千条“严格”和“警告”类型的消息

      修复

      更改了 php.ini display_errors=On to =Off "里面还有其他几个错误开/关开关,但这个是为我做的。"

      命名日志

      重启apache和mysql

      生活是美好的。

      【讨论】:

      • 小于 1 兆字节的错误日志在大小方面是 nothing。这不会影响速度。此外,您对“修复”所做的一切就是关闭错误显示。由于您很可能谈论的是开发服务器而不是生产服务器,因此这可能是建议某人做的最不可取的事情之一 - 特别是考虑到它可能对速度的影响为零。
      • (957K) too big for notepadd++ (my first clue I was on to something) and notepad took several minutes to render. 你可能正在运行 486?
      【解决方案8】:

      试试 Wamp Server 怎么样?

      与 XAMPP (44mb) 相比,安装文件 (16mb) 小很多。

      http://wampserver.com/

      【讨论】:

      • 谢谢!我不知道为什么,但它帮助并解决了我的问题 :) 现在我要将所有虚拟主机从 XAMPP 移动到 WAMP。
      • 很高兴它成功了。 WampServer 的占用空间肯定更小。
      • 这不是正确的答案......好的答案来自 JoeV 。问题是如何提高 xampp 的速度,而不是知道谁是最快的。
      • 我同意 Bruno 的观点,JoeV 给出了正确的答案——这是一个解决方案,这只是一个解决方案。
      【解决方案9】:

      C:\WINDOWS\system32\drivers\etc\hosts 我评论了这些行

      # 127.0.0.1 localhost
      # ::1       localhost
      

      还有大约 100 多行其他规则。 解决方案是删除所有这些规则或取消注释 127.0.0.1 localhost 并放在最前面。

      【讨论】:

        【解决方案10】:

        使用 127.0.0.1 而不是“localhost”连接到数据库对我有用。

        但我搜索了另一种解决方案并想出了这个:

        在您的 my.ini 文件中,取消注释以下行:

            # Change here for bind listening
            # bind-address="127.0.0.1" 
            # bind-address = ::1          # for ipv6
        

        你最终会拥有:

            # Change here for bind listening
              bind-address="127.0.0.1" 
            # bind-address = ::1          # for ipv6
        

        重启你的mysql服务器,页面加载速度应该很快,没有2-3秒的延迟。

        此外,使用此解决方案,您无需在数据库连接代码中修改连接,您可以继续使用“localhost”而不是“127.0.0.1”

        【讨论】:

          【解决方案11】:

          冒着明显的风险——检查主机文件的大小。由于 Spybot 为每个曾经存在的恶意软件站点添加了例外,即使这些站点大多不再活动,我的 hosts 文件已经膨胀到 450K。 Spybot 评论了这 10000 多个条目,版权日期为 2008 年,因此无论如何它们都毫无用处。

          我不知道其他间谍软件保护软件是否这样做,但主机文件应该足够小,这样 XAMPP 就不必在每次显示页面时都翻阅异常 URL。顺便说一句,如果您安装了任何破解软件,我当然不容忍,请注意不要删除阻止在线验证检查站点的主机异常。

          【讨论】:

            【解决方案12】:

            一年前我遇到了同样的问题,终于找出了问题所在。 如果您的日志(访问、错误)文件非常庞大,以至于即使使用记事本也需要一些时间才能打开,该怎么办?

            是的,你没听错 xampp 会创建这些文件。

            现在,如果我们有问题,那么也有解决方案。 我们可以每天轮换日志文件。这是步骤

            1. 在此路径“Xampp/apache/conf/httpd.conf”中编辑您的 httpd.conf
            2. 你会发现CustomLog "logs/access.log" common
            3. 替换为CustomLog "|bin/rotatelogs.exe logs/access_%y-%m-%d.log 86400" common
            4. 您可以对 logs/error.log 文件执行相同的操作。
            5. 更多轮播节目详情请关注https://httpd.apache.org/docs/2.4/programs/rotatelogs.html

            我也同意禁用 Xdebug 也会有所帮助。

            【讨论】:

              【解决方案13】:

              这就是我所做的,它让 XAMPP 变得更快:

              1. 在 hosts 文件 (C:\Windows\System32\drivers\etc\hosts) 中为我的站点分配了一个新的未使用的环回地址。换句话说,我避免使用 127.0.0.1 用于其他网站:

                127.0.0.2 example.com

              2. 在 Apache httpd.conf 文件中添加:

                Listen 127.0.0.2: 80

              3. 由于我有多个站点,因此我在每个站点的 htdocs 下都有子文件夹。在此示例中,文件夹名称为 example.com,这就是我的站点所在的位置。所以在我的 httpd.conf 文件中再次添加了一个 VirtualHost,如下所示:

                <VirtualHost 127.0.0.2:80> ServerAdmin myemail@hotmail.com DocumentRoot "C:/xampp/htdocs/example.com" ServerName example.com ErrorLog "c:/xampp/apache/logs/example.log" CustomLog "c:/xampp/apache/logs/example-access.log" common </VirtualHost>

              4. 重新启动 Apache。

              之后,在浏览器中访问 example.com 的加载速度非常快。

              【讨论】:

              • 这是真正适用于我的本地主机的方法。听 127.0.0.2:8080 真的加速了一切。我只将它用于 1 个站点。
              【解决方案14】:

              我也有同样的问题......

              我所做的是卸载了 C: drive 上的 xampp。

              安装到另一个驱动器(E:)...

              不知道,但它的工作正常且快速......

              【讨论】:

                【解决方案15】:

                我使用 Avast 防病毒软件,只需单击一下即可解决问题。右键单击 Avast 图标并选择静音/游戏模式。就是这样。

                【讨论】:

                  【解决方案16】:

                  我遇到了这个问题,它与防病毒或防火墙无关。通过确保本地主机正在寻找 127.0.0.1 可以轻松修复。

                  我在这里找到了很好的建议:
                  [http://www.devside.net/wamp-server/wamp-is-running-very-slow

                  说明如下: 编辑文件—— C:\Windows\System32\drivers\etc\hosts

                  通过在前面添加“#”来注释掉该行:

                  ::1 本地主机

                  如果“localhost”被解析为 IP 地址“::1”,请求(当无法找到 IPv6 监听套接字时)将被路由回 IP 地址 127.0.0.1(通过超时、回退或一些其他机制),导致不必要的连接延迟(例如,通常从 1 秒到 30 秒)。

                  确保“localhost”正确映射到 IPv4 环回地址“127.0.0.1”(……此行未被注释掉): 127.0.0.1 本地主机

                  【讨论】:

                    猜你喜欢
                    • 2016-08-13
                    • 1970-01-01
                    • 2013-01-28
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-03-10
                    • 2014-06-07
                    • 2016-05-31
                    • 2011-07-07
                    相关资源
                    最近更新 更多