Win7上的XAMPP太慢了

时间:2009-12-11 21:39:19

标签: php windows apache xampp

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

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

基本事实:

  • 在等待加载localhost网页时,状态栏显示“正在等待localhost ...”
  • CPU仍处于空闲状态(加载时没有增加活动)
  • 本地主机上的
  • 不需要PHP脚本,即使有很长的重脚本,也存在简单的phpinfo()问题。
  • 禁用MySQL服务器不会影响速度
  • 我的电脑:AMD Turion 64 X2; 1,6 GHz双核,2 GB RAM,100 GB HDD

我制作了一个简单的基准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速度有一定的经验?

感谢。

16 个答案:

答案 0 :(得分:43)

如果在Windows 7下XAMP速度很慢,则防火墙设置没有区别 Security Essentials反病毒没有区别。

要解决这个问题,两个有很大不同的地方是:

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

127.0.0.1 127.0.0.1

127.0.0.1 localhost

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

zend_extension =“C:\ xampp \ php \ ext \ php_eaccelerator_ts.dll”

完成这两项更改后,重新启动Apache,它会更快。

答案 1 :(得分:15)

不确定这可能是导致您出现问题的原因,但这可能是一个想法:您是否有一条如下所示的行:

::1 localhost

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

如果是,请在开头添加#来评论该行。


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

127.0.0.1    localhost

这是一个IPv4地址;而你评论的那个是IPv6 - 这对你要做的事情没有用。


正如我所说,不确定你的问题是否与此有关,但我已经看到这种消息帮助了几次与你的非常相似的问题(即在服务器上做任何事情之前等了很长时间)

答案 2 :(得分:15)

使用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"


    I disabled Bitdefeender -> no result
    I added lines to hosts -> no result
    I disabled xdebug - x2-x3 faster 

祝你好运 巴托

答案 3 :(得分:11)

我和Win 7 + XAMPP有类似的问题。问题是由我的防病毒软件引起的。当启用它时,即使是最简单的PHP页面也需要超过半秒的时间才能打开。带有大量链接require_once()的大PHP脚本花了超过1.5秒。在禁用防病毒功能的情况下,一切都很快(每个简单页面少于100毫秒,对于非常重的东西(100 +链接require_once())大约500毫秒。)

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

  1. 简单的解决方案 - 在使用xampp
  2. 时,只需将bitdefender切换为game mode
  3. “高级”解决方案 - 转到Antivirus -> Shield -> Advanced Settings -> Exclusions Tab,然后为httpd.exe添加排除项(位于您的xampp安装/ apache / bin /中)。然后转到Antivirus -> Exclusions并为php文件所在的目录添加排除项。
  4. 上述步骤后不要忘记重启apache。

    您可以选择安装eaccelerator来加快速度。

    正如我所注意的那样:我发现WAMP作为一个项目不如XAMPP成熟。

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

答案 4 :(得分:8)

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

显着帮助我的是禁用xdebug 。现在一切都变得非常快。

答案 5 :(得分:2)

有两件事可能导致此问题.Anitivirus软件和hostfile中的设置

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

127.0.0.1 127.0.0.1

127.0.0.1 localhost

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

答案 6 :(得分:1)

如何尝试使用Wamp Server?

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

http://wampserver.com/

答案 7 :(得分:1)

C:\WINDOWS\system32\drivers\etc\hosts中,我对这些行进行了评论

# 127.0.0.1 localhost
# ::1       localhost

还有大约100多条其他规则。 解决方案是删除所有这些规则或取消注释127.0.0.1 localhost并将其置于最顶层。

答案 8 :(得分:1)

我的BUG - XAMPP非常慢

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

1 - Localhost / 127.0.0.1 - 没有帮助

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

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

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

最终事情总共失败了500个错误。

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

对于notepadd ++来说太大了(我的第一个线索是我的东西),记事本花了几分钟才能渲染。

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

<强> FIX

更改了php.ini display_errors = On to = Off“那里还有其他几个错误的开/关开关,但是这个开启了它。”

nenamed log

重启apache和mysql

生活很美好。

答案 9 :(得分:1)

使用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”

答案 10 :(得分:1)

冒着明显的风险 - 检查主机文件的大小。由于Spybot为每个存在的恶意软件网站添加了例外,即使这些网站大部分不再处于活动状态,我的主机文件已经膨胀到450K。 Spybot对这10000多个条目进行了评论,其版权日期为2008年,无论如何都无用。

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

答案 11 :(得分:1)

一年前我有同样的问题,最后找出问题所在。 如果您的日志(访问,错误)文件变得如此庞大以至于即使使用记事本也需要花费时间,该怎么办?

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

enter image description here

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

  1. 在此路径中编辑httpd.conf“Xampp / apache / 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
  6. 我同意disble Xdebug也会有所帮助。

答案 12 :(得分:0)

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

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

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

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

答案 13 :(得分:0)

我使用Avast防病毒软件并通过简单的点击解决了这个问题。右键单击Avast图标,然后选择静音/游戏模式。就是这样。

答案 14 :(得分:0)

我有这个问题,它与防病毒或防火墙无关。很容易通过确保本地主机正在寻找127.0.0.1来修复。

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

说明如下: 编辑文件 - C:\ Windows \ System32下\驱动程序\等\主机

通过在前面添加“#”来评论该行:

:: 1 localhost

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

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

答案 15 :(得分:0)

这就是我所做的,它使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下都有子文件夹。在这个例子中,foldername是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。

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