Pracuji na malém projektu PHP pro svého přítele a mám nastavení prostředí WAMP pro místní vývoj. Pamatuji si doby, kdy odezva mého místního Apache 2.2 byla okamžitá. Bohužel, teď, když jsem se vrátil z dlouhé, dlouhé dovolené, mi připadají odpovědi od localhost bolestně pomalé.
Zobrazení 300B HTML stránky trvá přibližně 5 sekund.
Když se podívám na správce úloh, procesy httpd (2) využívají 0 % CPU a celkově můj počítač není zatížený (0-2 % využití CPU).
Proč je latence tak vysoká? Existuje nějaké nastavení Apache, které bych mohl vyladit, aby se jeho vlákno spustilo s vyšší prioritou nebo tak něco? Zdá se, že prostě spí, než odešle odpověď.
masegaloeh
17,5 000 9 9 zlatých odznaků 51 51 stříbrných odznaků 99 99 bronzových odznaků
zeptal se 17. září 2009 v 17:15
Petr Perháč Peter Perháč
1 009 1 1 zlatý odznak 9 9 stříbrných odznaků 13 13 bronzových odznaků
12
Pro mě nastavení vlastnosti ServerName v httpd.conf vyřešilo zpoždění (v nejhorším případě byly až 10 sekund):
# ServerName udává název a port, který server používá k identifikaci. # To může být často určeno automaticky, ale doporučujeme to specifikovat # výslovně, abyste předešli problémům při spouštění. # # Pokud váš hostitel nemá registrovaný DNS název, zadejte jeho IP adresu zde. ServerName 127.0.0.1:806
Měl jsem úplně stejný problém.
Nastavení přesměrování localhost na 127.0.0.1 v souboru hosts nepomohlo. Optimalizace MySQL serveru nepomohla (InnoDB -> MyISAM, změna mnoha direktiv souvisejících s cache v my.ini).
Potom jsem použil web webgrind a zúžil problém na volání "new PDO(...)". Měnící se
mysql:host=localhost;dbname=dp-ui;charset=utf8to
mysql:host=127.0.0.1;dbname=dp-ui;charset=utf8v dsn pro PDO problém zcela vyřešil! Doba načítání stránky se zvýšila z více než 3000 ms na 16 ms.
Jsem však opravdu zmatený, proč řádek "127.0.0.1 localhost" v souboru hosts nepomohl.
8
Problém byl s hlavním souborem nastavení Apache httpd.conf.
Našel jsem toto:
Existují tři způsoby, jak nastavit PHP pro práci s Apache 2.x ve Windows. PHP můžete spustit jako handler, jako CGI nebo pod FastCGI. [Zdroj]
A tak jsem šel do nastavení Apache a viděl jsem, kde je problém: nechal jsem to nastavit jako CGI, místo abych to nahrál jako modul. To způsobilo, že se php-cgi.exe spustil a vypnul pokaždé, když jsem zadal požadavek. To zpomalovalo můj vývoj localhost.
Změnil jsem nastavení tak, aby se PHP načítalo jako MODUL Apache a nyní vše funguje perfektně. :)
Chcete-li načíst modul PHP pro Apache 2.x:
1) vložte následující řádky do souboru httpd.conf
LoadModule php5_module "c:/php/php5apache2.dll"AddHandler application/x-httpd-php .php(p.s. změňte C:/php na svou cestu. Také změňte php5apache**.dll na svůj stávající název souboru)
2) Chcete-li omezit provádění PHP pouze pro soubory .php, přidejte toto do httpd.conf:
SetHandler application/x-httpd-php3) nastavte cestu php.ini v httpd.conf (pokud se po restartu zobrazí chyba, odstraňte tento řádek znovu)
PHPIniDir "C:/php"Děkuji vám všem za vaše úsilí.
3
Zkontrolujte, zda je soubor /etc/hosts správný. Takhle:
# hostname mobrglnx1 přidáno do /etc/hosts uživatelem anaconda 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ***** ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 *******V místo **** uveďte své jméno hostitele.
3
Měl jsem stejný problém a nakonec jsem zjistil, že to pramení ze dvou skutečností:
Používám Mac OS X Mavericks Přistupoval jsem ke svému projektu přes adresu URL http://myproject.local/, protože jsem do /etc/hosts vložil řádek 127.0.0.1 myproject.localProblém se objevuje, protože .local tld je rezervováno pro Služba Bonjour, a to od Mac OS X Lion (10.7).
Změna TLD za něco jiného problém vyřešila.
2
V souboru httpd.conf se ujistěte, že je nastavení HostnameLookups vypnuto.
1
Pro případ, že by to někomu pomohlo, měl jsem tento problém a scvrkl se na nesprávné vyhledávání DNS.
Server DNS na serveru byl nastaven na 127.0.0.1 – změnil jsem jej tak, aby používal veřejné servery DNS společnosti Google, a díky tomu byl o hromadu rychlejší.
Otázka má tag apache-2.2, ale pokud je někdo zasažen tímto hanebným problémem také na WAMP s Apache 2.4 + PHP 5.5, následující odpověď na SO mi pomohla:
upravte httpd.conf a zakažte načítání modulu CGI komentářem tohoto řádku: LoadModule cgi_module modules/mod_cgi.so
https://stackoverflow.com/a/18786773/260080Vysoce aktivní otázka. Získejte 10 reputace (nepočítaje asociační bonus), abyste mohli odpovědět na tuto otázku. Požadavek na reputaci pomáhá chránit tuto otázku před spamem a aktivitou bez odpovědi.
Chyba serveru funguje nejlépe, když je povolen JavaScript