VestaCP Po wybraniu przez serwis WEB szablonu "phpfcgid" duża liczba procesów PHP-CGI powoduje szybkie wyczerpanie pamięci:
- W zasadzie brakowało mi pamięci przez kilka godzin po ponownym uruchomieniu serwera.
- Poprzednio bezczynny proces PHP-CGI nie zostaje zabity, a jeden proces uruchamia prawie 1 podprocesów, zużywając co najmniej 20M pamięci.
Używane w SSH htop (wymagana instalacja), możesz zobaczyć ten status ▼

Jeśli pojawi się komunikat o błędzie „-bash: htop: nie znaleziono polecenia” podczas korzystania z polecenia htop, zapoznaj się z tym samouczkiem, aby uzyskać rozwiązanie ▼
Duża ilość procesów PHP-CGI powoduje, że pamięć szybko się wyczerpuje.Problem tkwi w VestaCPCentOSW szablonie phpfcgid używana jest niezoptymalizowana konfiguracja.
- VestaCP w szablonie phpfcgid, ustaw 1 proces PHP-CGI, aby uruchomić do 20 procesów potomnych.
Widzieć /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh Wiersz 13 akt:
export PHP_FCGI_CHILDREN=20
Jednak taka konfiguracja narusza ostrzeżenie Apache w dokumentacji zarządzania podprocesami PHP:
Zarządzanie procesami potomnymi PHP (PHP_FCGI_DZIECI) powinien być zawsze wyłączony za pomocą mod_fcgid, który będzie kierował tylko jedno żądanie na raz do procesów aplikacji, które stworzył, dlatego wszelkie procesy potomne utworzone przez PHP nie będą efektywnie używane (Ponadto, procesy potomne PHP mogą nie zostać poprawnie zakończone .) Domyślnie i z ustawieniem zmiennej środowiskowej PHP_FCGI_DZIECI=0, zarządzanie procesami potomnymi PHP jest wyłączone.
Ponieważ w module Apache mod_fcgid proces PHP-CGI może odpowiadać tylko na jedno żądanie i działać jednocześnie, proces potomny PHP-CGI jest bardzo nieefektywny.
Dlatego ustawienia zarządzania podprocesami PHP powinny być bezpośrednio wyłączone ▼
PHP_FCGI_CHILDREN=0
Jednocześnie, jeśli masz już wygenerowany wirtualny host, musisz zmodyfikować pliki konfiguracyjne wszystkich witryn ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
Po otwarciu pliku konfiguracyjnego fcgi-starter wstaw następujące ▼
export PHP_FCGI_CHILDREN=20
Zmień na ▼
export PHP_FCGI_CHILDREN=0
- Po modyfikacji zarządzanie podprocesami PHP zostanie wyłączone w trybie mod_fcgid.
- Proces PHP-CGI nie będzie już tworzył procesów potomnych, co może zaoszczędzić dużo pamięci.
Ponadto VestaCP nie ustawia mechanizmu zakończenia dla bezczynnych procesów:
- Wszystkie nowo uruchomione procesy PHP-CGI będą nadal używać pamięci do momentu ponownego uruchomienia systemu.
Aby to naprawić, po prostu dodaj plik konfiguracyjny mod_fcgid /etc/httpd/conf.d/fcgid.conf Dodaj następujące ustawienia w ▼
FcgidIdleTimeout 120
- Ustaw Apache, aby automatycznie zabijał procesy PHP-CGI, które są bezczynne przez 2 minuty (120 sekund).
Po zakończeniu konfiguracji uruchom ponownie usługę Apache ▼
service httpd restart
Po ponownym uruchomieniu usługi setki procesów PHP-CGI, które były wcześniej wyświetlane w HTTP, nie będą już wyświetlane.
Zazwyczaj pojedynczy proces PHP-CGI dla pojedynczego użytkownika Vesta CP zużywa od 30 do 40M pamięci, co jest w pełni satysfakcjonująceLinuxwymagania hosta.
w związku z tym,网络 营销ludzie chcą dobrze sobie radzićSEO, bardzo ważne jest zoptymalizowanie konfiguracji Vesta CP i szablonów ^_^
Możesz zapoznać się z poniższymi samouczkami na panelu VestaCP ▼
Nadzieja Chen Weiliang Blog ( https://www.chenweiliang.com/ ) udostępnił „Optymalizacja procesu konfiguracji szablonu VestaCP phpfcgid Wiele błędów wyczerpania pamięci 500”, który jest dla Ciebie pomocny.
Zapraszamy do udostępnienia linku do tego artykułu:https://www.chenweiliang.com/cwl-735.html



