VestaCP 웹 서비스에 "phpfcgid" 템플릿을 선택한 후, 다수의 PHP-CGI 프로세스가 빠르게 메모리를 고갈시켰습니다.
- 기본적으로 서버를 다시 시작한 후 몇 시간 동안 메모리가 부족했습니다.
- 이전에 유휴 상태였던 PHP-CGI 프로세스는 종료되지 않고 하나의 프로세스는 거의 1개의 하위 프로세스를 실행하여 최소 20M의 메모리를 소비합니다.
SSH에서 사용 htop 명령(설치 필요), 이 상태를 볼 수 있습니다 ▼

htop 명령을 사용할 때 "-bash: htop: command not found" 오류 메시지가 표시되면 이 자습서에서 해결 방법을 확인하세요 ▼
PHP-CGI 프로세스 수가 많아 메모리가 빠르게 고갈되었습니다. 이 문제는 VestaCP가 CentOS phpfcgid 템플릿 에서 최적화되지 않은 구성을 사용하고 있다는 점에 있습니다.
- phpfcgid 템플릿의 VestaCP에서 1개의 PHP-CGI 프로세스를 설정하여 최대 20개의 하위 프로세스를 실행합니다.
请参 阅 /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh 파일의 13행:
export PHP_FCGI_CHILDREN=20
그러나 이러한 설정은 PHP 하위 프로세스 관리 문서에서 Apache의 경고를 위반합니다.
mod_fcgid를 사용하면 PHP 자식 프로세스 관리( PHP_FCGI_CHILDREN )를 항상 비활성화해야 합니다. mod_fcgid는 한 번에 하나의 요청만 자신이 생성한 애플리케이션 프로세스로 전달하므로 PHP에서 생성된 자식 프로세스는 효율적으로 사용되지 않습니다. (또한 PHP 자식 프로세스가 제대로 종료되지 않을 수 있습니다.) 기본적으로, 그리고 환경 변수 PHP_FCGI_CHILDREN=0 으로 설정하면 PHP 자식 프로세스 관리가 비활성화됩니다.
Apache의 mod_fcgid 모듈에서 PHP-CGI 프로세스는 한 번에 하나의 요청에만 응답하고 실행할 수 있기 때문에 PHP-CGI 자식 프로세스는 매우 비효율적입니다.
따라서 PHP 하위 프로세스 관리에 대한 설정은 직접 비활성화해야 합니다 ▼
PHP_FCGI_CHILDREN=0
동시에 이미 생성된 가상호스트가 있다면 모든 웹사이트의 설정파일을 수정해야 합니다 ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
fcgi-starter 구성 파일을 연 후 다음 ▼을 삽입합니다.
export PHP_FCGI_CHILDREN=20
▼로 수정
export PHP_FCGI_CHILDREN=0
- 수정 후에는 mod_fcgid 모드에서 PHP 하위 프로세스 관리가 꺼집니다.
- PHP-CGI 프로세스는 더 이상 많은 메모리를 절약할 수 있는 자식 프로세스를 생성하지 않습니다.
또한 VestaCP는 유휴 프로세스에 대한 종료 메커니즘을 설정하지 않습니다.
- 새로 실행된 모든 PHP-CGI 프로세스는 시스템이 재부팅될 때까지 메모리를 계속 사용합니다.
이 문제를 해결하려면 mod_fcgid 구성 파일을 추가하기만 하면 됩니다. /etc/httpd/conf.d/fcgid.conf ▼에서 다음 설정을 추가합니다.
FcgidIdleTimeout 120
- 2분(120초) 동안 유휴 상태인 PHP-CGI 프로세스를 자동으로 종료하도록 Apache를 설정합니다.
설정 완료 후 Apache 서비스 재시작 ▼
service httpd restart
서비스가 다시 시작되면 이전에 HTOP에 표시되었던 수백 개의 PHP-CGI 프로세스가 더 이상 표시되지 않습니다.
일반적으로 Vesta CP 사용자 한 명을 위한 단일 PHP-CGI 프로세스는 30~40MB의 메모리를 소비하는데, 이는 Linux 호스트에 충분한 양입니다.
따라서 Vesta 콘텐츠 및 템플릿 구성을 최적화하는 것은 SEO 에서 탁월한 성과를 내고자 하는 온라인 마케터 에게 매우 중요합니다.
VestaCP 패널에서 다음 튜토리얼을 볼 수 있습니다 ▼
Chen Weiliang님의 블로그( https://www.chenweiliang.com/ ) 에 공유된 "다중 프로세스, 메모리 부족 500 오류에 대한 VestaCP phpfcgid 템플릿 구성 최적화"라는 글이 여러분께 도움이 되기를 바랍니다.
이 기사 링크( https://www.chenweiliang.com/cwl-735.html )를 자유롭게 공유해 주세요.



