Työstän pientä PHP-projektia ystävälleni, ja minulla on WAMP-ympäristö paikallista kehitystä varten. Muistan aikoja, jolloin paikallisen Apache 2.2:n vastaus oli välitön. Valitettavasti nyt kun palasin pitkältä, pitkältä lomalta, pidän localhostin vastaukset tuskallisen hitaita.
300 Mt:n HTML-sivun näyttäminen kestää noin 5 sekuntia.
Kun katson tehtävänhallintaa, httpd-prosessit (2) käyttävät 0 % suorittimesta, eikä tietokoneeni ole yleisesti kuormitettu (0-2 % suorittimen käyttö).
Miksi latenssi on niin korkea? Onko olemassa jotain Apache-asetusta, jota voisin säätää niin, että sen ketju toimisi korkeammalla prioriteetilla tai jotain? Näyttää siltä, että se vain nukkuu ennen kuin se antaa vastauksen.
masegaloeh
17,5k 9 9 kultamerkit 51 51 hopeamerkit 99 99 pronssimerkit
kysyi 17. syyskuuta 09 klo 17.15
Peter Perháč Peter Perháč
1 009 1 1 kultamerkki 9 9 hopeamerkkiä 13 13 pronssimerkkiä
12
Minulle PalvelimenNimi-ominaisuuden asettaminen httpd.confissa korjasi viiveet (ne olivat pahimmillaan jopa 10 sekuntia):
# PalvelimenNimi antaa nimen ja portin, joita palvelin käyttää tunnistaakseen itsensä. # Tämä voidaan usein määrittää automaattisesti, mutta suosittelemme, että määrität # sen nimenomaisesti estääksesi käynnistyksen aikana esiintyvät ongelmat. # # Jos isännälläsi ei ole rekisteröityä DNS-nimeä, kirjoita sen IP-osoite tähän. PalvelimenNimi 127.0.0.1:806
Minulla oli sama ongelma.
Localhost-uudelleenohjauksen asettaminen arvoon 127.0.0.1 hosts-tiedostossa ei auttanut. MySQL-palvelimen optimointi ei auttanut (InnoDB -> MyISAM, monien välimuistiin liittyvien ohjeiden muuttaminen my.ini-tiedostossa).
Sitten käytin web-webgrindiä ja rajasin ongelman "uusi PDO(...)" -kutsu. Vaihtaa
mysql:host=localhost;dbname=dp-ui;charset=utf8to
mysql:host=127.0.0.1;dbname=dp-ui;charset=utf8dsn:ssä PDO:lle ratkaisi ongelman täysin! Sivun latausaika nousi yli 3000 ms:sta 16 ms:iin.
Olen kuitenkin todella ymmälläni, miksi hosts-tiedoston rivi "127.0.0.1 localhost" ei auttanut.
8
Ongelma liittyi Apachen pääasetustiedostoon httpd.conf.
Löysin tämän:
On kolme tapaa määrittää PHP toimimaan Apache 2.x:n kanssa Windowsissa. Voit käyttää PHP:tä käsittelijänä, CGI:nä tai FastCGI:n alla. [Lähde]
Sitten menin Apachen asetuksiin ja huomasin, missä ongelma oli: määritin sen CGI:ksi sen sijaan, että olisin ladannut sen moduulina. Tämä sai php-cgi.exe käynnistymään ja sammumaan aina, kun tein pyynnön. Tämä hidasti paikallisen isännän kehitystä.
Vaihdoin asetuksia ladatakseni PHP:n Apache-MODUULINA, ja nyt kaikki toimii täydellisesti. :)
PHP-moduulin lataaminen Apache 2.x:lle:
1) Lisää seuraavat rivit httpd.conf-tiedostoon
LoadModule php5_module "c:/php/php5apache2.dll"AddHandler application/x-httpd-php .php(p.s. vaihda C:/php poluksesi. Muuta myös php5apache**.dll olemassa olevaan tiedostonimesi)
2) Jos haluat rajoittaa PHP:n suorittamista vain .php-tiedostoille, lisää tämä httpd.conf-tiedostoon:
SetHandler application/x-httpd-php3) aseta php.ini-polku tiedostossa httpd.conf (jos saat virheilmoituksen uudelleenkäynnistyksen jälkeen, poista tämä rivi uudelleen)
PHPIniDir "C:/php"Kiitos kaikille vaivannäöstäsi.
3
Tarkista, onko /etc/hosts oikein. Kuten tämä:
# hostname mobrglnx1 lisäsi tiedostoon /etc/hosts anaconda 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ***** ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ******paikka **** anna isäntänimesi.
3
Minulla oli sama ongelma ja lopulta huomasin, että se johtui kahdesta tosiasiasta:
Käytän Mac OS X Mavericks -käyttöjärjestelmää. Käytin projektiani URL-osoitteen http://myproject.local/ kautta, koska laitoin rivin 127.0.0.1 myproject.local kansioon /etc/hostsOngelma ilmenee, koska .local tld on varattu Bonjour-palvelu, ja tämä Mac OS X Lion (10.7) jälkeen.
Tld:n vaihtaminen johonkin muuhun korjasi ongelman.
2
Varmista httpd.conf-tiedostossa asetukseksi HostnameLookups Off.
1
Jos se auttaa jotakuta, minulla oli tämä ongelma, ja se johtui väärästä DNS-hausta.
Palvelimen DNS-palvelimen arvoksi asetettiin 127.0.0.1 – vaihdoin sen käyttämään Googlen julkisia DNS-palvelimia, mikä teki siitä paljon nopeamman.
Kysymyksen tunniste on apache-2.2, mutta jos tämä ilkeä ongelma koskee jotakuta myös WAMPissa, jossa on Apache 2.4 + PHP 5.5, seuraava vastaus SO:ssa ratkaisi minulle:
muokkaa httpd.conf-tiedostoa ja poista CGI-moduulin lataus käytöstä kommentoimalla tätä riviä: LoadModule cgi_module modules/mod_cgi.so
https://stackoverflow.com/a/18786773/260080Erittäin aktiivinen kysymys. Ansaitse 10 mainetta (lukuun ottamatta yhdistyksen bonusta) vastataksesi tähän kysymykseen. Mainevaatimus auttaa suojaamaan tätä kysymystä roskapostilta ja vastaamatta jättämiseltä.
Palvelinvika toimii parhaiten, kun JavaScript on käytössä
PREV: Palvelinvirtualisoinnin kuusi parasta etua - HiTechNectar