Kun VestaCP- verkkopalvelulle oli valittu "phpfcgid"-mallipohja, suuri määrä PHP-CGI-prosesseja kulutti muistin nopeasti loppuun.
- Muisti oli periaatteessa loppumassa muutaman tunnin ajan palvelimen uudelleenkäynnistyksen jälkeen.
- Aiemmin käyttämättömänä ollut PHP-CGI-prosessi ei tapeta, ja yhdessä prosessissa on lähes 1 aliprosessia, jotka kuluttavat vähintään 20 Mt muistia.
Käytetään SSH:ssa htop komento (vaatii asennusta), voit tarkastella tätä tilaa ▼

Jos saat virheilmoituksen "-bash: htop: komentoa ei löydy", kun käytät htop-komentoa, katso tämä opetusohjelma ratkaisua varten ▼
Suuri määrä PHP-CGI-prosesseja aiheutti muistin nopean loppumisen. Ongelmana on se, että VestaCP käyttää CentOS:n phpfcgid-mallissa optimoimatonta konfiguraatiota .
- Aseta VestaCP phpfcgid-mallissa 1 PHP-CGI-prosessi ajamaan jopa 20 aliprosessia.
请 参阅 /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Tiedoston rivi 13:
export PHP_FCGI_CHILDREN=20
Tällainen asennus rikkoo kuitenkin Apachen varoitusta PHP-aliprosessinhallinnan dokumentaatiossa:
PHP:n lapsiprosessien hallinta ( PHP_FCGI_CHILDREN ) tulisi aina poistaa käytöstä mod_fcgid-muuttujalla, joka reitittää vain yhden pyynnön kerrallaan luomiinsa sovellusprosesseihin. Näin ollen PHP:n luomia lapsiprosesseja ei käytetä tehokkaasti. (Lisäksi PHP:n lapsiprosesseja ei välttämättä voida lopettaa oikein.) Oletusarvoisesti ja ympäristömuuttujan asetuksella PHP_FCGI_CHILDREN=0 PHP:n lapsiprosessien hallinta on poistettu käytöstä.
Koska Apachen mod_fcgid-moduulissa PHP-CGI-prosessi voi vastata vain yhteen pyyntöön ja suorittaa kerrallaan, PHP-CGI-lapsiprosessi on erittäin tehoton.
Siksi PHP:n aliprosessien hallinnan asetukset tulee poistaa käytöstä suoraan ▼
PHP_FCGI_CHILDREN=0
Samanaikaisesti, jos sinulla on jo luotu virtuaalinen isäntä, sinun on muokattava kaikkien verkkosivustojen asetustiedostoja ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
Kun olet avannut fcgi-starter-määritystiedoston, lisää seuraava ▼
export PHP_FCGI_CHILDREN=20
Muokattu muotoon ▼
export PHP_FCGI_CHILDREN=0
- Muokkauksen jälkeen PHP-aliprosessien hallinta kytketään pois päältä mod_fcgid-tilassa.
- PHP-CGI-prosessi ei enää synnytä lapsiprosesseja, mikä voi säästää paljon muistia.
VestaCP ei myöskään aseta lopetusmekanismia käyttämättömille prosesseille:
- Kaikki äskettäin suoritetut PHP-CGI-prosessit käyttävät edelleen muistia, kunnes järjestelmä käynnistetään uudelleen.
Korjaa tämä lisäämällä mod_fcgid konfiguraatiotiedosto /etc/httpd/conf.d/fcgid.conf Lisää seuraavat asetukset kohtaan ▼
FcgidIdleTimeout 120
- Aseta Apache tappamaan automaattisesti PHP-CGI-prosessit, jotka ovat käyttämättömänä 2 minuuttia (120 sekuntia).
Kun asennus on valmis, käynnistä Apache-palvelu uudelleen ▼
service httpd restart
Kun palvelu on käynnistetty uudelleen, satoja PHP-CGI-prosesseja, jotka aiemmin näytettiin HTOPissa, ei enää näytetä.
Tyypillisesti yksi Vesta CP -käyttäjän PHP-CGI-prosessi kuluttaa 30–40 Mt muistia, mikä on enemmän kuin tarpeeksi Linux- isännälle.
Siksi Vestan sisällön ja mallien kokoonpanon optimointi on ratkaisevan tärkeää verkkomarkkinoijille , jotka haluavat menestyä hakukoneoptimoinnissa.
Voit katsoa seuraavat opetusohjelmat VestaCP-paneelissa ▼
Toivottavasti Chen Weiliangin blogissa ( https://www.chenweiliang.com/ ) jaetusta artikkelista "VestaCP phpfcgid -mallin konfiguroinnin optimointi 'Useita prosesseja, muistin loppuminen 500 -virhettä varten' on sinulle hyötyä.
Voit vapaasti jakaa tämän artikkelin linkin: https://www.chenweiliang.com/cwl-735.html



