我正在为我的一个朋友工作一个小小的PHP项目,并且为本地开发提供了一个WAMP环境设置。 我记得我当地的Apache 2.2的回应是直接的。 唉,现在我从一个长长的假期回来了,我发现localhost
的反应很慢。
获取300B HTML页面大约需要5秒钟。
当我看到任务pipe理器时, httpd
进程(2)占用了CPU的0%,整体上我的计算机没有负载(0-2%的CPU使用率)。
为什么延迟如此之高? 是否有任何Apache的设置,我可以调整,也许使其线程运行在更高的优先级或什么? 它似乎在睡觉之前就已经睡了。
对于我来说,在httpd.conf
设置ServerName
属性可以解决延迟问题(最坏的情况下最多10秒):
# ServerName gives the name and port that the server uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during startup. # # If your host doesn't have a registered DNS name, enter its IP address here. ServerName 127.0.0.1:80
问题是Apache的主要设置文件httpd.conf
。
我find了这个:
有三种方法可以将PHP设置为在Windows上使用Apache 2.x。 您可以将PHP作为处理程序,CGI或FastCGI运行。 [资源]
所以我进入了Apache的设置,看到问题出在哪里:我把它设置为CGI,而不是将其作为模块加载。 这导致php-cgi.exe
在每次发出请求时都会启动并closures。 这是放慢我的localhost
发展。
我改变了设置加载PHP作为Apache MODULE ,现在它完全运作。 🙂
为Apache 2.x加载PHP模块:
1)在
httpd.conf
插入以下行
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php
(ps更改
C:/php
到你的path。另外,更改php5apache ** .dll到你现有的文件名)2)为了限制只执行.php文件的PHP执行,在
httpd.conf
添加:
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
3)在
httpd.conf
设置php.ini的path(如果重启后出现错误,则再次移除该行)
PHPIniDir "C:/php"
谢谢大家的努力。
我有同样的问题。
在主机文件中设置localhostredirect到127.0.0.1没有帮助。 优化MySQL服务器没有帮助(InnoDB – > MyISAM,更改my.ini中的许多caching相关的指令)。
然后我使用web webrrind并将问题缩小到“新的PDO(…)”调用。 更改
mysql:host=localhost;dbname=dp-ui;charset=utf8
至
mysql:host=127.0.0.1;dbname=dp-ui;charset=utf8
在dsn中为PDO 彻底解决了这个问题 ! 页面加载时间从3000毫秒到16毫秒 。
但是我真的很困惑为什么hosts文件中的“127.0.0.1 localhost”行没有帮助。
在您的httpd.conf
中,请务必将设置HostnameLookups Off
。
检查/etc/hosts
是否正确。 喜欢这个:
# hostname mobrglnx1 added to /etc/hosts by anaconda 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ***** ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 *******
在****
给你的主机名。
万一它有助于任何人,我有这个问题,它归结为不正确的DNS查找 。
服务器上的DNS服务器被设置为127.0.0.1
– 我将其更改为使用Google公共DNS服务器,这使得整个堆更快。
我有同样的问题,最后发现它来自两个事实:
http://myproject.local/
访问我的项目,因为我在/etc/hosts
放置了一行127.0.0.1 myproject.local
出现问题是因为.local
tld是为Bonjour服务保留的,而这是Mac OS X Lion(10.7)以来的版本。
改变tld的东西解决了问题。
这个问题有一个标签apache-2.2,但如果有人受到这个与Apache 2.4 + PHP 5.5的WAMP这个邪恶的问题,下面的答案SO做了我的伎俩:
编辑
httpd.conf
并通过注释以下行禁止加载CGI模块:LoadModule cgi_module modules/mod_cgi.so