localhost
的响应非常缓慢。大约需要5秒钟才能显示300B HTML页面。
当我查看任务管理器时,
httpd
进程(2)占用了0%的CPU,并且整个计算机没有负载(0-2%的CPU使用率)。为什么延迟这么高?我是否可以调整任何Apache设置以使其线程以更高的优先级运行?好像是在睡觉之前就没有反应了。
#1 楼
对我而言,在ServerName
中设置httpd.conf
属性可解决延迟问题(最坏情况下,它们最多可延迟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
评论
这有效-希望我能投票两次
– hohner
2012年5月19日20:46
这也为我解决了!从10s延迟变为2ms!
–道格拉斯·赫里奥特(DouglasHeriot)
2012年7月2日,下午5:32
我奋斗了几个小时,这就是解决方案。
–williamcarswell
2013年12月10日上午8:51
如果localhost能够正确解析,为什么会出现问题?在响应之前的10秒中发生了什么?等待某处超时?
–米兰
2014年2月7日,12:41
@Elipticalview正如文件中的注释所示;如果您的主机没有注册的DNS名称,请在此处输入其IP地址。
–sshow
2014年10月10日在8:13
#2 楼
我遇到了同样的问题。在hosts文件中将localhost重定向设置为127.0.0.1并没有帮助。优化MySQL服务器没有帮助(InnoDB-> MyISAM,更改了my.ini中的许多与缓存相关的指令)。
然后我使用了web webgrind并将问题缩小为“新的PDO(...) ”电话。
更改dsn for PDO中的
mysql:host=localhost;dbname=dp-ui;charset=utf8
到
mysql:host=127.0.0.1;dbname=dp-ui;charset=utf8
完全解决了该问题!页面加载时间从3000毫秒增加到16毫秒。
但是我真的很困惑,为什么hosts文件中的“ 127.0.0.1 localhost”行没有帮助。
评论
有人可以告诉我应该编辑哪个文件才能使其正常工作吗?
– Giri
2013年6月29日20:20在
您应该编辑连接数据库的行(在PHP脚本中)。例如。更改行:$ link = new PDO('mysql:host = localhost; dbname = dp-ui; charset = utf8');到$ link = new PDO('mysql:host = 127.0.0.1; dbname = dp-ui; charset = utf8');
–michalko
2013年7月25日14:00
我最近正在开发EXT-JS应用程序,但MYSQL数据查询存在一个巨大的问题,即响应时间太长。 MYSQL基本上太慢了。谢天谢地,在这里得到了答案.....刚在连接脚本中将我的主机从以下位置更改:host = localhost;到主机= 127.0.0.1我的服务器响应从3分钟(180秒)减少到不到1秒。非常感谢。
–user184985
13年8月9日,下午5:11
这解决了我的问题。奇怪...我没有在SQLite中注意到这个问题
–Mladen Janjetovic
2014-09-25 15:25
对我来说也一样,但仅适用于WordPress。必须在wp-config.php中将“ localhost”替换为“ 127.0.0.1”
–阿德里安
15年4月23日在7:12
#3 楼
问题出在Apache的主要设置文件httpd.conf
上。我发现了这个问题:
有三种方法可以设置PHP以与Apache 2.x一起使用视窗。您可以将PHP作为处理程序,CGI或FastCGI运行。 [来源]
所以我进入了Apache的设置,看到了问题所在:我将其设置为CGI,而不是将其作为模块加载。每当我发出请求时,这都会导致
php-cgi.exe
启动和关闭。这减慢了我的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
更改为您的路径。此外,将php5apache **。dll更改为您的现有文件名)2)限制仅对.php文件执行PHP,将其添加到
httpd.conf
中:<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
3)在
httpd.conf
中设置php.ini的路径(如果重新启动后出现错误,则删除此行再次)PHPIniDir "C:/php"
谢谢大家的努力。
评论
我的Apache停止添加源代码中提到的行。在Windows中该怎么办?
– AgA
13年4月2日在13:02
该链接已过期。使用此:goo.gl/2EVth9
–T.Todua
16年8月30日在9:06
如何在Mac上复制某些内容?
– Kamel Labiad
20 May 29 '13:28
#4 楼
检查/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 *******
在
****
的地方输入您的主机名。评论
对我来说就是这样。我的域设置在ipv4行中,但没有设置在ipv6中。
–拉斐尔·贝克尔(Rafael Beckel)
2015年9月10日,0:10
我也是。在我将额外的行放入/ etc / hosts之前,请求花费了> 5秒的时间。现在我的资料可以在大约0.1秒内运行。
–mwallisch
2015年10月17日在12:33
让我朝正确的方向前进。添加了127.0.0.1 something.atmy.localhost,现在请求不再需要20秒了。而是本地apache立即响应。对网络了解不多。我猜域名解析太慢了,因为配置不正确。
– Robsch
18年11月13日在7:44
#5 楼
我遇到了同样的问题,最后发现它来自两个事实:我使用Mac OS X Mavericks
我通过URL
http://myproject.local/
访问了我的项目,因为我将127.0.0.1 myproject.local
中的/etc/hosts
行出现此问题是因为
.local
tld是为Bonjour服务保留的,而这是因为Mac OS X Lion(10.7)。tld可以解决其他问题。
评论
我使用.test但还是一样的问题
– Kamel Labiad
20-05-29在13:30
@KamelLabiad,您不应使用它,它是真正的顶级域名(TLD):fr.wikipedia.org/wiki/.test
–lepix
20-05-29在23:51
#6 楼
请确保在您的httpd.conf
中设置设置HostnameLookups Off
。评论
我似乎没有apache.conf文件,我也在所有文件中搜索了HostnameLookups指令,并在core.html.en手册文件中找到了它。它说它默认是关闭的,所以我想它是关闭的
– PeterPerháč
09年9月17日在18:28
#7 楼
万一它对任何人都有帮助,我会遇到这个问题,并且归结为不正确的DNS查找。服务器上的DNS服务器设置为
127.0.0.1
-我将其更改为使用Google Public DNS服务器,这使整个堆变得更快。#8 楼
这个问题的标签是apache-2.2,但是如果有人在Apache 2.4 + PHP 5.5的WAMP上也受到此恶性问题的影响,那么以下关于SO的答案对我有用:编辑
httpd.conf
并通过注释以下行来禁用CGI模块的加载:LoadModule cgi_module modules/mod_cgi.so
https://stackoverflow.com/a/18786773/260080
评论
本地主机在DNS方面解析正确吗? ping localhost应该立即返回127.0.0.1。效果很好,在1ms内收到响应
我以为firefox可能是问题所在,但即使在IE中也需要5s,因此必须是某些系统设置或Apache设置或gremlins。
请求静态内容(即加载http://localhost/index.html时)是否具有相同的行为?如果不是,则可能是PHP问题,而不是Apache问题。
这个问题的众多答案表明,有数十种(如果不是数百种)不同的原因导致页面请求很慢。如果您由于页面请求速度太慢而遇到了这个问题,则需要在此之前找到更慢的原因,然后才能找到有用的答案。 strace和tcpdump是对此有用的工具。