• Digitální příslušenství
  • Server
  • Digitální život
  • Zásady ochrany osobních údajů
  • Kontaktujte nás
  1. Domov
  2. Článek
  3. Proč je odezva na localhost tak pomalá?

Proč je odezva na localhost tak pomalá?

Rsdaa 04/01/2022 1817

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:80

6

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=utf8

to

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

v 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-php

3) 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.local

Problé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/260080

Vysoce 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


PREV: 6 hlavních výhod virtualizace serverů – HiTechNectar

NEXT: Co je virtualizace? - IONOS

Populární články

Žhavé články
Zpět na začátek