这次做了一个项目部署在环境为win2012+nginx1.13.5+mysql5.6+php7的环境下,服务器是阿里云的

由于之前没有这种经验,遇到了点坑(据参考文章里说的这坑还有些年份了),最开始自己是用Php-cgi解决的,但是不知道是服务器问题还是别的什么情况,运行cmd输入php-cgi.exe -b 127.0.0.1:9000不能关闭cmd,否则cgi就一起关掉了。这也忍了,但是自己访问后台上传多几张图片,cgi自己就能挂掉,这种情况当然不能忍,所以查阅各种资料,最后解决方案如下(所用工具包及参考链接附在文章末尾):

  本文要解决的问题是:
  1、php-cgi.exe自动退出
  2、如何将xxfpm设置成系统服务,随系统重启

第一步:windows下安装Nginx,Mysql,PHP

  本步骤过于简单,就跳过了,如果连这个也不会,建议到全中国最牛X的技术资料平台【百度】搜索“nginx+php”

  mysql的安装就是next、next、next的问题,也不说了。

  后面的步骤才是本文的重点!

第二步:让php-cgi.exe受xxfpm守护,而xxfpm随系统启用,达到后台运行的效果

  网上很多文章介绍用什么应用隐藏工具,还有写什么bat手工运行的,我就不吐槽了。

  (1)你需要下载xxfpm.exe,把它放在PHP目录下;

  (2)再下载【命令调用工具】winserv.exe,也放在PHP目录下,我们将它注册成系统服务,通过它去执行xxfpm.exe

  (3)编写如下的批处理文件install.bat,目的是将winserv.exe注册成系统服务:

@echo off
if not ""%1"" == ""INSTALL"" goto remove
"C:/nginx/php\winserv.exe" install "nginxPHP-CGI" -start auto "C:/nginx/php\php-cgi.exe" -b 127.0.0.1:9000 -c "C:/nginx/php\php.ini"
net start nginxPHP-CGI > NUL goto end :remove
net stop nginxPHP-CGI > NUL
"C:/nginx/php\winserv.exe" uninstall "nginxPHP-CGI" :end
exit

可以直接copy上面代码,改名install.bat,执行即可。当然上面的目录路径要修改成你的。这步操作完,php-cgi.exe会随winserv.exe的启动而启动,但还没完,因为这时候的php-cgi.exe很脆弱,500个请求就会down掉。

注:我自己复制上述代码后改名install.bat并执行,没有成功,原因我猜是在判断条件,我最后的解决方案是将以下两句代码逐一复制入cmd中执行,后再执行下一步(还是要注意修改成你自己的路径)。

后知后觉的我在解决后才注意到文末的工具包中附带的install.bat跟上述代码还有点差别,未解决的童鞋可以尝试下直接执行该文件看是否能解决(还是要注意修改成你自己的路径,第三次提醒)。

"C:/nginx/php\winserv.exe" install "nginxPHP-CGI" -start auto "C:/nginx/php\php-cgi.exe" -b 127.0.0.1:9000 -c "C:/nginx/php\php.ini"
net start nginxPHP-CGI

(4)在【运行】里输入regedit.exe,找到[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\nginxPHP-CGI],即刚才注册的服务键值,把其中CommandLine的值修改为:

C:\nginx\php\xxfpm.exe "C:/nginx/php/php-cgi.exe -c C:/nginx/php/php.ini" -n 5 -i 127.0.0.1 -p 9000

(5)大功告成!无弹出窗,无界面。这时候我关掉我已开启的cmd,网站依然可以访问,php仍然可以使用

另外想要实现Nginx反向代理给IIS,实现80端口共享的童鞋,可以参考文末链接,本文只截取了其三分之二的内容,因为我自己不打算配反向代理,也就没继续执行下去了。

附上所有工具包、bat文件:百度网盘

参考:https://blog.csdn.net/aasx/article/details/53576095

最新文章

  1. C#操作XML的通用方法总结
  2. OData V4 系列 查询操作
  3. easymock+junit+spring学习·
  4. GitHub Desktop 桌面工具,离线版本下载(无需考虑网络问题)
  5. Mysql学习笔记(九)索引查询优化
  6. 利用WinPcap模拟网络包伪造飞秋闪屏报文
  7. 使用Apache ab进行http性能测试
  8. android SDK 更新
  9. bzoj 3198 [Sdoi2013]spring(容斥原理+Hash)
  10. Ext.grid.Panel表格分页
  11. 点击超链接执行js代码实现确认操作
  12. express小记
  13. mongodb从来没有说它写成功了。
  14. python爬虫从入门到放弃(八)之 Selenium库的使用
  15. 求最小生成树——Kruskal算法
  16. JS中金额转换以及格式化
  17. [Swift]LeetCode518. 零钱兑换 II | Coin Change 2
  18. TCP的11种状态
  19. Redhat7配置ali-yum源
  20. 【PAT】B1004 成绩排名

热门文章

  1. async包 ES6 async/await的区别
  2. DjangoModels
  3. 微信小游戏广告位iphonex底部适配问题
  4. Nginx笔记总结十三:nginx 正向代理
  5. vm文件的优点
  6. axios统一封装
  7. 通过samus驱动实现基本数据操作
  8. EL表达式详细教程
  9. 阿里巴巴-德鲁伊druid连接池配置
  10. SpringBoot 处理 POST Json 传参枚举