Shell 스 크 립 트 는 PHP 내 장 된 FastCGI 서버 를 시작 합 니 다.
PHP 에 있어 서php-fpm가 가장 적합 하 다.spawn-fcgi이런 것 은 고려 할 필요 가 없다.나 는 차라리 PHP 5 에 내 장 된 FastCGI Server 를 사용 하 겠 다.
다음 명령 을 통 해 서버 를 시작 하고 9000 포트 를 감청 합 니 다.
php-cgi -q -b 127.0.0.1:9000 &
자,nginx 에 맞 춰 작업 을 계속 시작 할 수 있 습 니 다.하지만 일정 시간 마다 502 Bad Gateway 오류 가 발생 합 니 다.pp-cgi 프로 세 스 처리 요청 수가 최대(기본 500)에 이 르 러 자동 으로 종료 되 었 기 때 문 입 니 다.환경 변 수 를 두 개 설정 해 야 합 니 다.
PHP_FCGI_CHIldren C 파 출산 프로 세 스 의 수
PHP_FCGI_MAX_REQUESTS C 하위 프로 세 스 마다 처리 할 수 있 는 최대 요청 수
이 두 환경 변수 에 맞 춰 내 장 된 FastCGI Server 를 시작 하여 주 프로 세 스 가 아 닌 하위 프로 세 스 를 파생 시 켜 요청 을 처리 할 수 있 도록 합 니 다.그렇지 않 으 면 위 에서 말 한 상황 이 발생 해 500 이 되면 자동 으로 퇴출 된다.
다음은 간단 한 스 크 립 트 입 니 다.
#!/bin/bash
## :
##
## http://php.net/manual/en/install.unix.lighttpd-14.php
## http://kovyrin.net/2006/05/30/nginx-php-fastcgi-howto
##
## php-cgi
PHPFCGI=`which php-cgi`
## PID
PHP_PID="/tmp/php.pid"
## TCP
FCGI_BIND_ADDRESS="127.0.0.1:9000"
## Unix domain socket
#FCGI_BIND_ADDRESS="/tmp/php.sock"
## PHP
##
PHP_FCGI_CHILDREN=16
## PHP
PHP_FCGI_MAX_REQUESTS=4096
##
USERID=verdana
################## no config below this line
# ,
if test x$UID = x0; then
CMD="/bin/su -m -c \"$PHPFCGI -q -b $FCGI_BIND_ADDRESS\" $USERID"
else
CMD="$PHPFCGI -b $FCGI_BIND_ADDRESS"
fi
echo $CMD
#
E="PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS"
# ,
nohup env - $E sh -c "$CMD" &> /dev/null &
# PHP PID
# $! sh PID
# php-cgi PID, PID
MASTER_PID=`ps -e | grep 'php-cgi' | sed -n '1p' | awk '{print $1}'`
echo $MASTER_PID > "$PHP_PID"
어떻게 닫 습 니까?모든 php-cgi 프로 세 스 를 한꺼번에 죽 일 수 있 습 니 다:
ps -e | grep php-cgi | awk '{print $1}' | xargs kill
주 프로 세 스 만 죽여 도 같은 효 과 를 얻 을 수 있 고 모든 하위 프로 세 스 도 사라 집 니 다.
cat /tmp/php.pid | xargs kill
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Shell alias 명령에 별칭을 설정하는 방법명령에 별명을 설정하면 명령의'작은 이름'으로 삼을 수 있지만, 이렇게 하는 것이 무슨 의미가 있습니까? 이때 별명이 작용할 수 있다.vim 명령의 별명을vi라고 정의하면 이후에 실행된vi 명령은 실제로vim 명령을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.