Por que a resposta no localhost é tão lenta?

54

Estou trabalhando em um pequeno projeto PHP para um amigo meu e tenho uma configuração de ambiente WAMP para desenvolvimento local. Lembro-me dos dias em que a resposta do meu Apache 2.2 local foi imediata. Infelizmente, agora que voltei de um longo feriado, acho as respostas de localhost dolorosamente lentas.

Demora cerca de 5 segundos para receber uma página HTML de 300B.

Quando olho para o gerenciador de tarefas, o httpd processes (2) está usando até 0% da CPU e, no geral, meu computador não está sob carga (0-2% de uso da CPU).

Por que a latência é tão alta? Existe alguma configuração do Apache que eu poderia ajustar para talvez fazer seu segmento executar com uma prioridade mais alta ou algo assim? Parece que está simplesmente dormindo antes de atender a resposta.

    
por Peter Perháč 17.09.2009 / 19:15

8 respostas

20

O problema foi com o arquivo de configurações principal do Apache httpd.conf .

Eu encontrei isto:

There are three ways to set up PHP to work with Apache 2.x on Windows. You can run PHP as a handler, as a CGI, or under FastCGI. [Source]

Então eu entrei nas configurações do Apache e vi onde estava o problema: eu tinha configurado como CGI, em vez de carregá-lo como um módulo. Isso fez com que php-cgi.exe inicializasse e desligasse toda vez que fiz uma solicitação. Isso estava diminuindo meu localhost de desenvolvimento.

Eu alterei as configurações para carregar o PHP como um MODULE do Apache e agora tudo funciona perfeitamente. :)

To load the PHP module for Apache 2.x:

1) insert following lines into httpd.conf

LoadModule php5_module "c:/php/php5apache2.dll"

AddHandler application/x-httpd-php .php

(p.s. change C:/php to your path. Also, change php5apache**.dll to your existing file name)

2) To limit PHP execution only for .php files, add this in httpd.conf:

<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>

3) set path of php.ini in httpd.conf (if after restart you get error, then remove this line again)

PHPIniDir "C:/php"

Obrigado a todos por seus esforços.

    
por 11.10.2009 / 00:56
57

Para mim, definir a propriedade ServerName em httpd.conf corrigiu os atrasos (eles eram até 10 segundos, na pior das hipóteses):

# 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
    
por 13.01.2012 / 12:55
19

Eu tive o mesmo problema.

A definição do redirecionamento de host local para 127.0.0.1 no arquivo de hosts não ajudou. A otimização do servidor MySQL não ajudou (InnoDB - > MyISAM, alterando muitas diretivas relacionadas ao cache em my.ini).

Em seguida, usei o webgrind da web e reduzi o problema para a chamada "novo PDO (...)". Mudando

mysql:host=localhost;dbname=dp-ui;charset=utf8 

para

mysql:host=127.0.0.1;dbname=dp-ui;charset=utf8

em dsn para PDO resolveu completamente o problema ! O tempo de carregamento da página passou de mais de 3.000 ms para 16 ms .

No entanto, estou realmente confuso porque a linha "127.0.0.1 localhost" no arquivo hosts não ajudou.

    
por 01.11.2012 / 12:51
6

Eu tive o mesmo problema e finalmente descobri que estava vindo de dois fatos:

  1. eu uso o Mac OS X Mavericks
  2. acessei meu projeto pelo URL http://myproject.local/ porque coloquei uma linha 127.0.0.1 myproject.local em /etc/hosts

O problema aparece porque o .local tld está reservado para o serviço Bonjour e isso desde o Mac OS X Lion (10.7).

Mudar o tld para outra coisa resolveu o problema.

    
por 24.06.2014 / 15:26
5

Verifique se /etc/hosts está correto. Assim:

# 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 *******

No lugar **** , forneça seu nome de host.

    
por 10.01.2013 / 10:24
4

Em httpd.conf , certifique-se de definir a configuração HostnameLookups Off .

    
por 17.09.2009 / 20:16
3

Caso isso ajude alguém, tive esse problema e resumi-me a ser pesquisa incorreta de DNS .

O servidor DNS no servidor estava definido como 127.0.0.1 - alterei-o para usar os servidores DNS públicos do Google e isso tornou tudo mais rápido.

    
por 21.02.2011 / 00:35
2

A questão tem uma tag apache-2.2, mas se alguém for afetado por este problema nefasto também no WAMP com Apache 2.4 + PHP 5.5 , a seguinte resposta sobre SO fez o truque para mim:

edit httpd.conf and disable the loading of the CGI module by commenting this line: LoadModule cgi_module modules/mod_cgi.so

link

    
por 21.11.2015 / 14:32