最近做的一个项目,系统是windows的,因为要在后台做一些数据分析,所以使用webman,以便使用自定义进程处理数据。
开始的思路是使用bat批处理弄了个开机自启,但运行了一段时间后,命令行直接挂了[php.exe已停止工作]。不知道什么原因,应该不是业务代码的问题,估计是内存泄露或者某个php扩展引起的。
处理方法就是关了命令行重新打开,但问题没有根本解决,说不定哪天又挂了。
所以,从网上找了个nssm的软件,可以生弄成一个服务,可以开机自启,没有黑乎乎的命令行命,挂了也自动重启。
下载地址:http://www.nssm.cc/download
参考资料:https://www.jianshu.com/p/35487bc68ab1
我的系统环境:
php目录:D:\UPUPW_ANK_W64\Modules\PHPX\PHP74
网站目录:D:\doc\php\site1
下载以后,根据你的系统版本,打开命令行,cd进入[win64]或[win32]。(或者把nssm.exe
复制到网站根目录也行)。
1、执行命令:.\nssm install
,会打开一个图形化界面:
D:\UPUPW_ANK_W64\Modules\PHPX\PHP74\php.exe
D:\doc\php\site1\public\
..\windows.php
webman8787
2、点击◀▶切换到选项卡到[I/O]
配置日志文件:
D:\doc\php\site1\runtime\logs\stdout.log
D:\doc\php\site1\runtime\logs\stderr.log
3、点击◀▶切换到选项卡到[Environment]
配置环境变量:
输入:path=D:\UPUPW_ANK_W64\Modules\PHPX\PHP74\;C:\Windows\SysWOW64\;
这步很重要,即使你已在系统的环境变量中把php
执行路径加入path里面,这里仍然需要配置,不然启动子进程的时候会报[php命令找不到]的错误。另外文件修改监控热重载使用了taskkill
系统命令,要找到这个命令[taskkill.exe]在系统中的位置,64位系统是在[C:\Windows\SysWOW64]这个目录里面,也加到path里面,多个路径使用;
分割。。
4、点击底部[install service]
完成安装。
5、可以在任务管理器-服务中找到webman8787
的服务。
6、如果想修改配置,执行命令:.\nssm edit webman8787
,会重新打开配置界面。
7、出错可以查看一下日志stdout.log
:
就跟在命令行界面看到的差不多:
666