windows 下 nginx的控制

nginx_cmd
  用过的人估计都知道,windows下的nginx原本不是以一个服务形式存在的,不可能使用类似net start nginx的形式启动,必须用命令行去启动,设置环境变量还没法直接启动,简直就是个麻烦。
  最后还是屈服于Apache的Httpd了,但是Nginx还是不要放弃了,于是乎弄了个批处理搞定了。
  有几个问题就是,有时候莫名其妙的跑出一堆nginx.exe和php-cgi.exe的进程,可能是cgi的缘故吧,话说linux下的php-pfm怎么不移植过来呢。
  最后只好在结束的时候来个全部kill,taskkill命令还是不错的,全部搞定。以后需要测试的时候就可以连nginx一起测试了。不用的时候就老实呆在一边凉快吧,比较感觉没apache方便,虽然要把nginx做成服务也不是什么难事。

@echo off
title Nginx 控制
::设置盘符路径为D盘
D:
::切换到nginx的工作目录
cd D:\HTTP\nginx-1.5.8
::输出菜单
goto menu

:menu
echo --------------------------
echo start 启动服务
echo stop 停止服务
echo reload 重载服务
echo quit 退出
echo reopen 重新打开
echo cgi 启动PHP-CGI
echo --------------------------
set /p input= 请输入:

if "%input%"=="start" call :start
if "%input%"=="stop" call :stop
if "%input%"=="reload" call :reload
if "%input%"=="reopen" call :reopen
if "%input%"=="quit" call :quit
if "%input%"=="cgi" call :cgi
cmd
exit

:start
start nginx.exe
echo 启动已执行
pause
exit

:stop
nginx.exe -s stop
echo 已执行停止操作
taskkill /F /IM nginx.exe
taskkill /F /IM php-cgi.exe
pause
exit

:reload
nginx.exe -s reload
echo 已执行重载操作
pause
exit

:reopen
nginx.exe -s reopen
echo 已执行重新打开操作
pause
exit

:quit
nginx.exe -s quit
echo 已执行退出操作
pause
exit

:cgi
::此处的___php-cig.vbs为外部的文件
start ___php-cgi.vbs
echo PHP-CGI 启动已执行
goto menu
exit

  还有php-cgi执行是个麻烦,默认还必须得开个黑窗口,多麻烦啊,我发现的最简单的就是用vb的脚本将其隐藏,效果还不错。当然这里的php-cgi.exe 是在环境变量的目录下的,如果没有请自己搞定。

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c php-cgi.exe -b 127.0.0.1:9000",vbhide

  任务基本搞定了,设置环境变量之后。比如我设设置的名称为nginx-c,直接Win+R然后输入就好。

22条评论在“windows 下 nginx的控制”

写下你最简单的想法