VestaCP web zerbitzurako "phpfcgid" txantiloia hautatu ondoren, PHP-CGI prozesu askok memoria azkar agortu zuten.
- Funtsean, memoriarik gabe geratu nintzen zerbitzaria berrabiarazi ondoren ordu batzuetan.
- Lehen inaktibo PHP-CGI prozesua ez da hiltzen, eta prozesu batek ia 1 azpiprozesu exekutatzen ditu, gutxienez 20M memoria kontsumituz.
SSHn erabiltzen da htop komandoa (instalatu behar da), egoera hau ikus dezakezu ▼

"-bash: htop: komandoa ez da aurkitu" errore-mezu bat jasotzen baduzu htop komandoa erabiltzen duzunean, ikusi tutorial hau irtenbidea ezagutzeko ▼
PHP-CGI prozesu kopuru handiak memoria azkar agortzea eragiten zuen. Arazoa VestaCP-k CentOS phpfcgid txantiloian konfigurazio optimizatu gabea erabiltzen duela da.
- VestaCP phpfcgid txantiloian, ezarri 1 PHP-CGI prozesu 20 haur prozesu exekutatzeko.
请 参阅 /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Fitxategiko 13. lerroa:
export PHP_FCGI_CHILDREN=20
Hala ere, konfigurazio horrek Apacheren abisua urratzen du PHP azpiprozesuen kudeaketaren dokumentazioan:
PHP haur-prozesuen kudeaketa ( PHP_FCGI_CHILDREN ) beti desgaitu behar da mod_fcgid-ekin, honek aldi berean eskaera bakarra bideratuko baitu sortutako aplikazio-prozesuetara; horrela, PHP-k sortutako haur-prozesuak ez dira eraginkortasunez erabiliko. (Gainera, baliteke PHP haur-prozesuak behar bezala ez amaitzea.) Berez, eta PHP_FCGI_CHILDREN=0 ingurune-aldagaia ezarrita , PHP haur-prozesuen kudeaketa desgaituta dago.
Apache-ren mod_fcgid moduluan, PHP-CGI prozesuak eskaera bati bakarrik erantzun eta aldi berean exekutatu dezakeenez, PHP-CGI haur prozesua oso ez da eraginkorra.
Beraz, PHP azpiprozesuen kudeaketarako ezarpenak zuzenean desgaitu behar dira ▼
PHP_FCGI_CHILDREN=0
Aldi berean, dagoeneko sortutako ostalari birtual bat baduzu, webgune guztien konfigurazio fitxategiak aldatu behar dituzu ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
fcgi-starter konfigurazio fitxategia ireki ondoren, sartu ▼ hau
export PHP_FCGI_CHILDREN=20
▼-ra aldatu da
export PHP_FCGI_CHILDREN=0
- Aldaketa egin ondoren, PHP azpiprozesuen kudeaketa desaktibatu egingo da mod_fcgid moduan.
- PHP-CGI prozesuak ez ditu haur-prozesuak sortuko, eta horrek memoria asko gorde dezake.
Gainera, VestaCP-k ez du amaiera-mekanismorik ezartzen inaktibo prozesuetarako:
- Exekutatu berri diren PHP-CGI prozesu guztiek memoria erabiltzen jarraituko dute sistema berrabiarazi arte.
Hau konpontzeko, gehitu mod_fcgid konfigurazio fitxategia /etc/httpd/conf.d/fcgid.conf Gehitu ezarpen hauek ▼ atalean
FcgidIdleTimeout 120
- Ezarri Apache 2 minutuz (120 segundo) inaktibo dauden PHP-CGI prozesuak automatikoki hiltzeko.
Konfigurazioa amaitu ondoren, berrabiarazi Apache zerbitzua ▼
service httpd restart
Zerbitzua berrabiarazi ondoren, aurrez HTOPen bistaratzen ziren ehunka PHP-CGI prozesu ez dira bistaratuko.
Normalean, Vesta CP erabiltzaile bakar baten PHP-CGI prozesu bakar batek 30 eta 40 MB memoria kontsumitzen ditu, eta hori nahikoa baino gehiago da Linux ostalari batentzat.
Beraz, Vesta edukiaren eta txantiloien konfigurazioa optimizatzea ezinbestekoa da SEOan bikain aritu nahi duten online marketinentzat .
VestaCP panelean ondorengo tutorialei begirada bat eman diezaiekezu ▼
Zorionez, Chen Weiliang-en blogean ( https://www.chenweiliang.com/ ) partekatutako "VestaCP phpfcgid template configuration for 'Multiple Processes, Memory Exhaustion 500 Error' optimizatzea" artikulua lagungarria izango zaizu.
Anima zaitez artikulu honen esteka partekatzera: https://www.chenweiliang.com/cwl-735.html



