开发者

Very slow Apache on Windows 7

The simplest script:

<?php echo 'hello';

Takes about 3 seconds to execute. There seems to be a big time interval Apache waits until it serves a web page.

I tried turning off antivirus, disabling ipv6 and more but Apache is still very slow. What should I do?

EDIT:

Additional information:

  • Apache 2.2
  • PHP 5.2
  • It's only dynamic P开发者_Go百科HP files. Static files (html) are served instantly
  • It has nothing to do with system specs, it's new PC

There are few PHP notices in Apache error log:

[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


It's commonly suggested that this problem is caused by your firewall interfering or by having IPv6 enabled at your network interfaces, however those solutions didn't fix the issue for me. It turns out that by default Windows 7 hosts file at "C:\Windows\System32\drivers\etc\hosts" has this line commented out:

# 127.0.0.1 localhost

In my case, simply uncommenting this line changed the localhost performance back to what it was supposed to be, instead of that annoying 3-5 second wait on every page load. Remember that you need to run your text editor with administrator rights to edit the hosts file.


I had the same issue. Modifying the host file did not improve pages loading speed. After searching for hours, I finally found a solution.

I changed my httpd.conf file so that the listen address is bound to one IP address instead of all available interfaces :

#Listen 80
Listen 127.0.0.1:80

Now all the webpages are loading instantaneously instead of ~10 seconds.

Hope this help.

Edit : actually it did not solve the issue, it was still randomly slow. I have to admit that I finally moved my webserver to a linux virtual machine on which I never observed any slow response time anymore.


I´m using Laravel Framework, what worked for me was changing directive realpath_cache_size = 1M in the php.ini. It changed loading time from 3 seconds to half second!

realpath_cache_size = 1M


In my case, by default, the standard documents root C:\PathToApache\htdocs was shared with other users on the local network. By disabling the sharing of that directory I've improved a lot Apache's performances. Now each request take less than a blink of an eye.

I hope this will help all of you future readers


Purely to help anyone who comes across this dilemma of Apache being slow on Windows, I solved this by commenting out ::1 localhost in C:\Windows\System32\drivers\etc\hosts and adding 127.0.0.1 127.0.0.1.

I found I kept having to reload Apache in Windows Services because my websites would gradually respond slower and slower.

The Apache htdocs folder was not shared, changing the Listen ... line in httpd.conf didn't seem to work, and I already had the line 127.0.0.1 localhost in my C:\Windows\System32\drivers\etc\hosts file, but the ::1 localhost line was directly below it.

As @Erwinus recommends in his comment on the top post, I commented out that line and from this post I added the line 127.0.0.1 127.0.0.1. The server response time appears to have improved massively.


The only thing helped me is un-ticking box 'register this connection's addresses in dns' in ipv4 parameters of the network adapter, button under DNS settings -> lower two checkboxes.


Use the Task Manager to kill unnecessary processes.

By the way, you should end your script with ?>.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜