windowns下bat啓動程序(Ngin + PHP +MariaDB)

分享知識  傳遞快樂

 

以下是本人搭建PHP運行環境,用於啓動 Ngin + PHP +MariaDB 服務所用,僅供參考。

如有需要了解更多bat命令,請點擊查看《BAT命令常用API》。

 

代碼如下:

@ECHO OFF
TITLE WNMP管理程序
COLOR 0A

set WNMP_HOME=D:/WnmpServer/wnmp/bin
::nginx 所在目錄
set NGINX_HOME=%WNMP_HOME%/nginx/1.16.1
::php 所在目錄
set PHP_HOME=%WNMP_HOME%/php/5.5.12
::set PHP_HOME=%WNMP_HOME%/php/7.2.25
::mariadb 所在目錄
set MARIADB_HOME=%WNMP_HOME%/mariadb/10.4.10/bin


::驗證文件是否存在
if not exist "%WNMP_HOME%/RunHiddenConsole.exe" (
	echo 缺少WNMP運行必要文件!
	pause
	exit
)


echo ******	WNMP管理程序	****** 
echo.

:MENU
:: 判斷程序是否存在
ECHO *******************************************************************
ECHO *	
ECHO *	Wnmp程序管理
ECHO *	
ECHO *******************************************************************

echo.
echo. [1] 啓動Wnmp
echo. [2] 關閉Wnmp
echo. [3] 重啓Wnmp
echo. [4] 查看進程
echo. [5] 查看版本
echo. [6] 刷新
echo. [0] 退出
echo.

echo.請輸入選擇的序號:
set /p ID=
	if "%id%"=="1" goto start 
	if "%id%"=="2" goto stop 
	if "%id%"=="3" goto restart 
	if "%id%"=="4" goto process
	if "%id%"=="5" goto version
	if "%id%"=="6" goto refresh
	if "%id%"=="0" exit
PAUSE

::*************************************************************************************
::
::	創建執行服務
::
::*************************************************************************************
::
::啓動
:start 
	call :StartNginx
	call :StartPHP
	call :StartMariaDB
	call :ShowLine
	goto MENU

::停止
:stop
	call :StopNginx
	call :StopPHP
	call :StopMariaDB
	call :ShowLine
	goto MENU

::重啓
:restart
	call :StopNginx
	call :StopPHP
	call :StopMariaDB
	call :StartNginx
	call :StartPHP
	call :StartMariaDB
	call :ShowLine
	goto MENU

::查看版本
:version
    call :NginxVer
	call :PHPVer
	call :MariaDBVer
	call :ShowLine
	goto MENU

::查看進程
:process
	call :NginxProcess
	call :PHPProcess
	call :MariaDBProcess
	call :ShowLine
	goto MENU

::刷新
:refresh
	echo. 
	cls
	goto MENU


::*************************************************************************************
::
::	創建執行過程
::
::*************************************************************************************

::*************************************************************************************
::
::	nginx
::
::*************************************************************************************
::
:StartNginx
	echo.
	::tasklist查找所有進程列表,讓find找出nginx.exe進程
	tasklist|find /i "nginx.exe">nul
	
	::errorlevel:0成功,1失敗
	::echo nginx啓動狀態:%errorlevel%
	
	::errorlevel==1找不到進程(說明程序未啓動,則開始啓動程序)
	if %errorlevel% EQU 1 (
		::判斷文件是否存在,存在則執行,否則就提示找不到路徑
		if exist "%NGINX_HOME%/nginx.exe" (
			%WNMP_HOME%/RunHiddenConsole %NGINX_HOME%/nginx.exe -p %NGINX_HOME%>nul
						
			::啓動完成後,驗證啓動狀態(查看線程)
			tasklist|find /i "nginx.exe"
			echo nginx start successfully!
		) else (
			echo unknown Nginx path!
		)
	) else (
		echo nginx service is running!
	)
	goto :eof

:StopNginx
	echo. 
	::tasklist查找所有進程列表,讓find找出nginx.exe進程
	tasklist|find /i "nginx.exe">nul
	
	::errorlevel:0成功,1失敗
	::echo nginx關閉狀態:%errorlevel%
	
	::errorlevel==0已找到進程(說明程序已啓動,則結束程序)
	if %errorlevel% EQU 0 (
		taskkill /F /IM nginx.exe>nul
		
		::關閉完成後驗證關閉狀態(查看線程)
		tasklist|find /i "nginx.exe"
		echo nginx stop successfully!
	) else (
		echo nginx service is stopped!
	)
	goto :eof

::顯示nginx版本
:NginxVer
	echo. 
	%NGINX_HOME%/nginx -v
 	goto :eof

::
:NginxProcess
	echo. 
	tasklist|find /i "nginx.exe"
	goto :eof

::*************************************************************************************
::
::	PHP
::
::*************************************************************************************
::
:StartPHP
	tasklist|find /i "php-cgi.exe">nul
	if %errorlevel% EQU 1 (
		if exist "%PHP_HOME%/php-cgi.exe" (
			%WNMP_HOME%/RunHiddenConsole %PHP_HOME%/php-cgi.exe -b 127.0.0.1:9000 -c %PHP_HOME%/php.ini>nul
			
			tasklist|find /i "php-cgi.exe"
			echo php start successfully!
		) else (
			echo unknown PHP path!
		)
	) else (
		echo php service is running!
	)
	goto :eof

::
:StopPHP
	tasklist|find /i "php-cgi.exe">nul
	if %errorlevel% EQU 0 (
		taskkill /F /IM php-cgi.exe > nul
		
		tasklist|find /i "php-cgi.exe"
		echo php stop successfully!
	) else (
		echo php service is stopped!
	)
	goto :eof

::
:PHPVer
	echo.
	%PHP_HOME%/php-cgi -v
	goto :eof

::
:PHPProcess
	echo. 
	tasklist|find /i "php-cgi.exe"
	goto :eof

::*************************************************************************************
::
::	MariaDB
::
::*************************************************************************************
::
:StartMariaDB
	tasklist|find /i "mysqld.exe">nul
	if %errorlevel% EQU 1 (
		if exist "%MARIADB_HOME%/mysqld.exe" (	
			%WNMP_HOME%/RunHiddenConsole %MARIADB_HOME%/mysqld.exe --defaults-file=%WNMP_HOME%/mariadb/database/my.ini --standalone>nul
			
			tasklist|find /i "mysqld.exe"
			echo mariadb start successfully!
		) else (
			echo unknown MariaDB path!
		)
	) else (
		echo mariadb service is running!
	)
	goto :eof

::
:StopMariaDB
	tasklist|find /i "mysqld.exe">nul
	if %errorlevel% EQU 0 (
		taskkill /F /IM mysqld.exe > nul
		
		tasklist|find /i "mysqld.exe"
		echo mariadb stop successfully!
	) else (
		echo mariadb service is stopped!
	)
	goto :eof

::
:MariaDBVer
	echo.
	%MARIADB_HOME%/mysqld -v
	goto :eof

::
:MariaDBProcess
	echo. 
	tasklist|find /i "mysqld.exe"
	goto :eof


:ShowLine
	echo ###################################################################
	echo.
	echo.
	echo.

 

 

 

 

 

 

 

——————————
如有不足請留言指正
相互學習,共同進步

發佈了114 篇原創文章 · 獲贊 107 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章