VestaCP Nadat de WEB-service de sjabloon "phpfcgid" heeft geselecteerd, zorgt een groot aantal PHP-CGI-processen ervoor dat het geheugen snel uitgeput raakt:
- Ik had eigenlijk een paar uur geen geheugen meer nadat ik de server opnieuw had opgestart.
- Het voorheen inactieve PHP-CGI-proces wordt niet afgebroken en één proces voert bijna 1 subprocessen uit, die ten minste 20 miljoen geheugen verbruiken.
Gebruikt in SSH htop
commando (installatie vereist), kunt u deze status bekijken ▼
Als u een foutmelding "-bash: htop: command not found" krijgt wanneer u de htop-opdracht gebruikt, raadpleeg dan deze tutorial voor de oplossing ▼
Een groot aantal PHP-CGI-processen zorgt ervoor dat het geheugen snel uitgeput raakt. Het probleem ligt bij VestaCPCentOSIn de phpfcgid-sjabloon wordt een niet-geoptimaliseerde configuratie gebruikt.
- Stel in VestaCP in de phpfcgid-sjabloon 1 PHP-CGI-proces in om maximaal 20 onderliggende processen uit te voeren.
Zien /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh
Regel 13 van het bestand:
export PHP_FCGI_CHILDREN=20
Een dergelijke setup schendt echter de waarschuwing van Apache in de documentatie over het subprocesbeheer van PHP:
PHP-onderliggend procesbeheer (PHP_FCGI_CHILDREN) moet altijd worden uitgeschakeld met mod_fcgid, dat slechts één verzoek tegelijk doorstuurt naar de applicatieprocessen die het heeft voortgebracht; dus alle onderliggende processen die door PHP zijn gemaakt, zullen niet effectief worden gebruikt. (Bovendien kunnen de onderliggende PHP-processen niet correct worden beëindigd .) Standaard, en met de instelling van de omgevingsvariabele PHP_FCGI_CHILDREN=0, PHP-onderliggend procesbeheer is uitgeschakeld.
Omdat in de mod_fcgid-module van Apache het PHP-CGI-proces slechts op één verzoek kan reageren en tegelijk kan worden uitgevoerd, is het onderliggende PHP-CGI-proces erg inefficiënt.
Daarom moeten de instellingen voor PHP-subprocesbeheer direct worden uitgeschakeld ▼
PHP_FCGI_CHILDREN=0
Tegelijkertijd, als je al een gegenereerde virtuele host hebt, moet je de configuratiebestanden van alle websites wijzigen ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
Na het openen van het fcgi-starter configuratiebestand, voeg je het volgende in:
export PHP_FCGI_CHILDREN=20
Wijzigen in
export PHP_FCGI_CHILDREN=0
- Na wijziging wordt PHP-subprocesbeheer uitgeschakeld in mod_fcgid-modus.
- Het PHP-CGI-proces zal geen onderliggende processen meer voortbrengen, wat veel geheugen kan besparen.
VestaCP stelt ook geen beëindigingsmechanisme in voor inactieve processen:
- Alle nieuw uitgevoerde PHP-CGI-processen blijven geheugen gebruiken totdat het systeem opnieuw wordt opgestart.
Om dit op te lossen, voegt u het configuratiebestand mod_fcgid toe /etc/httpd/conf.d/fcgid.conf
Voeg de volgende instellingen toe in ▼
FcgidIdleTimeout 120
- Stel Apache in om PHP-CGI-processen die 2 minuten (120 seconden) inactief zijn, automatisch te beëindigen.
Nadat de installatie is voltooid, start u de Apache-service opnieuw ▼
service httpd restart
Nadat de service opnieuw is opgestart, worden de honderden PHP-CGI-processen die eerder in HTTPP werden weergegeven, niet meer weergegeven.
Gewoonlijk verbruikt een enkel PHP-CGI-proces voor een enkele Vesta CP-gebruiker 30 tot 40M geheugen, wat volledig bevredigend isLinuxgastheer eisen.
Daarom网络 营销mensen willen het goed doenSEO, is het erg belangrijk om de configuratie van Vesta CP en sjablonen te optimaliseren ^_^
U kunt de volgende tutorials bekijken op het VestaCP-paneel ▼
Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) deelde "Optimaliseren van VestaCP phpfcgid-sjabloonconfiguratieproces Meerdere geheugenuitputting 500-fouten", wat nuttig voor u is.
Welkom om de link van dit artikel te delen:https://www.chenweiliang.com/cwl-735.html
Welkom op het Telegram-kanaal van Chen Weiliang's blog voor de laatste updates!
📚 Deze gids bevat enorme waarde, 🌟Dit is een zeldzame kans, mis hem niet! ⏰⌛💨
Deel en like als je wilt!
Uw delen en likes zijn onze voortdurende motivatie!