Nginx:http://nginx.org/en/download.html
PHP4Windows:http://windows.php.net/download/【请下载 NTS(Non Thread Safe 非线程安全)版】
下面这货是用来创建 Windows 自启服务的:
WinSW:https://github.com/kohsuke/winsw/releases【下载 .exe 文件即可,根据系统选择,Win 10 选择 .NET4 版本,以下选择 .NET2 版本】
xxfpm 用来开启 PHP-CGI 多进程
xxfpm:https://github.com/78/xxfpm
规规矩矩的办事是基本
1
先在 D 盘或任意位置建立一个文件夹(一定不能有空格),例如 D:\WebDevEnvironment
依次创建 nginx、php56、xxfpm(PHP 视版本命名,例如 PHP 7.1 则为 php71。)
将已下载的 Nginx 和 PHP 都扔到对应文件夹内,nginx 内包含 nginx.exe 和 conf 文件夹;php56 内包含 php-cgi.exe 和 ext 文件夹
将 WinSW.NET4.exe 分别扔进 nginx 文件夹和 php71。xxfpm 压缩包内 bin 文件夹里除了 xxfpm,将 xxfpm.exe 和 pthreadGC2.dll 扔进 xxfpm 文件夹
nginx 内的 WinSW.NET4.exe 重命名为 nginx-server.exe,然后新建一个同名的 XML 文件 nginx-server.xml
编辑 nginx-server.xml 文件,内容如下:
<service>
<!-- 服务 ID,命令行使用这个名字可以启动/停止服务 -->
<id>nginx-server</id>
<!-- 服务名称,可任意,为了方便建议和 ID 一致 -->
<name>nginx-server</name>
<!-- 服务描述,任意 -->
<description>Nginx Server.</description>
<!-- 启动程序名称,不用修改 -->
<executable>nginx.exe</executable>
<!-- 停止服务时执行程序名称 -->
<!-- 解释一下为何用 Win 的 taskkill 命令。因为 Nginx 利用服务启动的情况下无法使用 nginx -s stop 或 nginx -s quiet 命令结束进程,会提示权限不足 -->
<stopexecutable>taskkill</stopexecutable>
<!-- 以下三行是 taskkill 的参数,不用修改 -->
<stopargument>/F</stopargument>
<stopargument>/IM</stopargument>
<stopargument>nginx.exe</stopargument>
<!-- 日志路径,将生成日志至 nginx/logs 目录 -->
<logpath>logs</logpath>
</service>
保存 XML 文件,然后 Win+X,A 戳开管理员身份的 cmd,通过 d: && cd D:\WebDevEnvironment\nginx 命令进入 D:\WebDevEnvironment\nginx 文件夹,接着输入 nginx-server.exe install 并回车,服务就装好啦,Win+R 输入 services.msc 回车,进服务瞧一瞧,有的有的!
已创建 Nginx 服务
进入 xxfpm 文件夹,将之前复制进来的 WinSW.NET4.exe 重命名为 php-cgi.exe,然后创建同名的 php-cgi.xml 文件,内容如下:
<service>
<id>php-cgi</id>
<name>php-cgi</name>
<description>PHP-CGI.</description>
<executable>xxfpm.exe</executable>
<!-- 启动参数 -->
<startargument>"D:/WebDevEnvironment/php71/php-cgi.exe -c D:/WebDevEnvironment/php71/php.ini"</startargument>
<startargument>-n</startargument>
<!-- 启动进程数量,可修改,建议大于 1 -->
<startargument>3</startargument>
<startargument>-i</startargument>
<!-- 监听IP,默认一般都用 127.0.0.1 -->
<startargument>127.0.0.1</startargument>
<startargument>-p</startargument>
<!-- 监听端口,默认一般都用 9000 -->
<startargument>9000</startargument>
<!-- 停止参数 -->
<stopexecutable>taskkill</stopexecutable>
<stopargument>/F</stopargument>
<stopargument>/IM</stopargument>
<stopargument>xxfpm.exe</stopargument>
<logpath>logs</logpath>
</service>
如 Nginx 创建那样,通过命令行创建服务,注意这里是 php-cgi.exe install
Win + R 打开 service.msc 手动启动或直接管理员命令行 net start php-cgi && net start nginx-server 启动服务。通过任务管理器我们可以清楚的看到服务成功启动,现在不用担心 php-cgi.exe 进程突然就没了。
taskmgr 命令打开服务窗口