windows系统下启动php-cgi的启动脚本,适合nginx
@ECHO OFF
SET ROOT=D:\Rdpm-Server\host\php
SET EXEC=php-cgi.exe
IF NOT EXIST “%ROOT%\%EXEC%” (
ECHO.
ECHO Fatal Error:
ECHO ————
ECHO ‘%ROOT%\%EXEC%’ not found.
GOTO QUIT
)
REM =============
REM SET FUNCTIONS
REM =============
IF “%1″==”" GOTO HELP
IF “%1″==”-h” GOTO HELP
IF “%1″==”-b” (
GOTO CHKBIND
) ELSE (
ECHO.
ECHO Fatal Error:
ECHO ————
ECHO Invalid parameter.
GOTO HELP
)
:CHKBIND
REM ===================
REM CHECK ADDRESS VALUE
REM ===================
IF “%2″==”" (
ECHO.
ECHO Fatal Error:
ECHO ————
ECHO Server address isn’t defined.
GOTO HELP
) ELSE (
SET BIND=%2
)
IF “%3″==”" GOTO SETDEFS
IF “%3″==”-p” (
GOTO CHKPORT
) ELSE (
ECHO.
ECHO Fatal Error:
ECHO ————
ECHO Invalid parameter.
GOTO HELP
)
:CHKPORT
REM ================
REM CHECK PORT VALUE
REM ================
IF “%4″==”" (
ECHO.
ECHO Fatal Error:
ECHO ————
ECHO Server port isn’t defined.
GOTO HELP
) ELSE (
SET PORT=%4
)
IF “%5″==”" GOTO SETDEFS
IF “%5″==”-c” (
GOTO CHKCHLD
) ELSE (
ECHO.
ECHO Fatal Error:
ECHO ————
ECHO Invalid parameter.
GOTO HELP
)
:CHKCHLD
REM =================
REM CHECK CHILD VALUE
REM =================
IF “%6″==”" (
ECHO.
ECHO Fatal Error:
ECHO ————
ECHO Child processes aren’t defined.
GOTO HELP
) ELSE (
SET CHLD=%6
GOTO CHKRCVE
)
:CHKRCVE
REM =====================
REM CHECK RECURSIVE VALUE
REM =====================
IF “%7″==”-r” (
SET RCVE=Y
GOTO SETENV
)
IF “%7″==”-s” (
SET RCVE=N
GOTO SETENV
)
IF “%7″==”" (
GOTO SETDEFS
) ELSE (
ECHO.
ECHO Fatal Error:
ECHO ————
ECHO Invalid parameter.
GOTO HELP
)
:HELP
REM ====
REM HELP
REM ====
ECHO.
ECHO Command-line usage:
ECHO ——————-
ECHO %0 -b ^
IF “%1″==”-h” GOTO QUIT
IF “%1″==”-?” GOTO QUIT
IF “%1″==”" (
GOTO SETDEFS
) ELSE (
GOTO QUIT
)
:SETDEFS
REM =================
REM SET SERVER VALUES
REM =================
ECHO.
ECHO Set server values
ECHO —————–
IF NOT DEFINED BIND (
SET BIND=127.0.0.1
) ELSE (
GOTO SELPORT
)
:SETBIND
SET /P BIND=”Server address [%BIND%]: ”
:SELPORT
IF NOT DEFINED PORT (
SET PORT=1900
) ELSE (
GOTO SELCHLD
)
:SETPORT
SET /P PORT=”Server port [%PORT%]: ”
:SELCHLD
IF NOT DEFINED CHLD (
SET CHLD=5
) ELSE (
GOTO SELRCVE
)
:SETCHLD
SET /P CHLD=”Child processes [%CHLD%]: ”
:SELRCVE
IF NOT DEFINED RCVE (
SET RCVE=Y
) ELSE (
GOTO SETENV
)
ECHO.
:SETRCVE
SET /P RCVE=”Do you want to run server as recursive mode [Y/n]: ”
:SETENV
IF %CHLD% GEQ 10 (
SET PHP_FCGI_CHILDREN=10
) ELSE (
SET PHP_FCGI_CHILDREN=%CHLD%
)
SET PHP_FCGI_MAX_REQUESTS=1000
IF “%RCVE%”==”y” SET RECURSE=ENA
IF “%RCVE%”==”Y” SET RECURSE=ENA
IF “%RCVE%”==”n” SET RECURSE=DIS
IF “%RCVE%”==”N” SET RECURSE=DIS
ECHO.
ECHO PHP Version Information
ECHO ———————–
SET CDIR=%CD%
CD /D “%ROOT%”
%EXEC% -v
ECHO.
ECHO FastCGI Server Options
ECHO ———————-
ECHO Host: %BIND%
ECHO Port: %PORT%
ECHO Child processes: %PHP_FCGI_CHILDREN% ^(Max requests: %PHP_FCGI_MAX_REQUESTS%^)
IF “%RECURSE%”==”ENA” (
ECHO Crash detection: RECURSIVE ^(protected mode^)
) ELSE (
ECHO Crash detection: STANDALONE ^(non-protected mode^)
)
ECHO.
ECHO Event log
ECHO ———
GOTO EXECRUN
:GENMSG
REM ===============
REM SET DATE FORMAT
REM ===============
SET FDATE=%DATE:~0,4%/%DATE:~5,2%/%DATE:~8,2%
IF “%TIME:~0,1%”==” ” (
SET FTIME=0%time:~1,1%:%time:~3,2%:%time:~6,2%
) ELSE (
SET FTIME=%time:~0,2%:%time:~3,2%:%time:~6,2%
)
ECHO [%FDATE% %FTIME%] – %CMESSAGE%
IF NOT DEFINED ITEM (
GOTO EXECRUN
) ELSE (
GOTO %ITEM%
)
:EXECRUN
IF NOT DEFINED ITEM (
SET CMESSAGE=PHP-FastCGI Server is started.
) ELSE (
SET CMESSAGE=PHP-FastCGI Server is ^(re^)started.
)
SET ITEM=SPAWNPHP
GOTO GENMSG
:SPAWNPHP
%EXEC% -b %HOST%:%PORT%
IF “%RECURSE%”==”ENA” (
SET CMESSAGE=Server is crashed, restarting…
SET ITEM=EXECRUN
) ELSE (
SET CMESSAGE=Server is crashed, aborting…
SET ITEM=CRASH
)
GOTO GENMSG
:CRASH
ECHO.
ECHO Press any key to exit…
PAUSE >NUL
:QUIT
IF DEFINED CDIR (
CD /D %CDIR%
)
转载请注明:本文转载自 纯 白 色 http://www.7qy.com/html/186.html