为什么本地主机上的响应太慢?

我正在为我的一个朋友工作一个小小的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服务器,这使得整个堆更快。

    我有同样的问题,最后发现它来自两个事实:

    1. 我使用Mac OS X Mavericks
    2. 我通过URL 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

    https://stackoverflow.com/a/18786773/260080