windows nginx php 服务自启动

4 篇文章 0 订阅

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 命令打开服务窗口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值