我正在尝试设置一台朋友的Windows7计算机来运行Nginx&PHP5.我在网上找到了一个启动和停止Nginx&PHP,在添加了目录更改行之后,我就可以让它工作了。然而,似乎有一个问题导致它打开了启动PHP的第二个控制台窗口。有没有办法关闭控制台窗口?
批脚本:
@ECHO OFF
CD C:'nginx
tasklist /FI "IMAGENAME eq nginx.exe" | find /I "nginx.exe" > NUL && (
GOTO STOP
) || (
GOTO START
)
:START
ECHO Starting nginx
start nginx
ECHO Starting PHP
start php'php-cgi.exe -b 127.0.0.1:9000 -c c:'nginx'php'php.ini
GOTO DONE
:STOP
ECHO Stopping nginx
start nginx -s quit
ECHO Stopping PHP
taskkill /f /IM php-cgi.exe
:DONE
TIMEOUT 3
您可以使用START
上的/b参数来启动应用程序,而无需打开另一个cmd窗口
START /b php'php-cgi.exe -b 127.0.0.1:9000 -c c:'nginx'php'php.ini
更新:
这似乎是php-cgi.exe的行为。有关完整的故事和解决方法,请参阅本文。http://wiki.nginx.org/PHPFastCGIOnWindows
启动后,php-cgi.exe将继续侦听连接在命令提示窗口中。要隐藏该窗口,请使用小型实用程序RunHiddenConsole
基本上,您只需要d/l并将RunHiddenConsole解压缩到nginx目录,然后将此行更改为:
RunHiddenConsole.exe php'php-cgi.exe -b 127.0.0.1:9000 -c c:'nginx'php'php.ini
您正在寻找
start php'php-cgi.exe -b 127.0.0.1:9000 -c c:'nginx'php'php.ini
/exit b
要运行.BAT Invisible,可以使用一个简单的vbs脚本。
将其放入.VBS文件:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
然后像这样运行BAT:
wscript.exe "C:'invisible.vbs" "C:'YourBat.bat"