Win2012+Nginx+IIS+xxfpm(服务版)
这次做了一个项目部署在环境为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端口共享的童鞋,可以参考文末链接,本文只截取了其三分之二的内容,因为我自己不打算配反向代理,也就没继续执行下去了。
参考:https://blog.csdn.net/aasx/article/details/53576095
Win2012+Nginx+IIS+xxfpm(服务版)的更多相关文章
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- Windows下将nginx安装为服务运行
今天看到nginx这个小服务器软件正式版更新到了1.4.2,想玩下它.这个服务器软件虽小,但功能强大,是开源软件,有着良好的性能,被很多个人.企业,甚至大型企业所使用! 由于是在Windows下,所以 ...
- nginx+iis使用
一.nginx的介绍 nginx是由俄罗斯人开发的一款高性能的http和反向代理服务器,也可以用来作为邮件代理.相比较于其他的服务器,具有占用内存少,稳定性高等优势 Nginx相关地址 源码:http ...
- [转]Windows 下 Nginx+IIS 使用
本文转自:https://blog.csdn.net/chihen/article/details/52698594 Windows 下 Nginx+IIS 使用 一.Nginx简介 Nginx (& ...
- Windows+Nginx+IIS做图片分布式存储详细步骤
最近几天,一直在学习nginx在windows平台下的使用,为了寻找几种大量图片分布式存储而且有相对简单的存储方案 nginx是一种,还找到一种MongoDB GridFS 这两种方案我还是比较中意的 ...
- nginx+iis、NLB、Web Farm、Web Garden、ARR
nginx+iis实现负载均衡 在win2008R2上使用(NLB)网络负载均衡 NLB网路负载均衡管理器详解 [译文]Web Farm和Web Garden的区别? IIS负载均衡-Applicat ...
- 重温WCF之构建一个简单的WCF(一)(1)通过控制台和IIS寄宿服务
一.理解什么是WCFWCF就是.NET平台下各种分布式技术的集成,并提供了一套统一的编程接口 二.WCF的定义WCF(Windows Communication Foundation)是微软为构建面向 ...
- Nginx + IIS
Nginx + IIS 配置,实现负载均衡 当你的Web应用程序访问量大的时候,一台服务器可能会因为压力过大而无法处理所有的请求.此时,可以增加服务器,采用负载均衡来分担所有的请求.关于Nginx ...
随机推荐
- NIO详解
目录 NIO 前言 IO与NIO的区别 Buffer(缓冲区) Channel(通道) Charset(字符集) NIO遍历文件 NIO 前言 NIO即New IO,这个库是在JDK1.4中才引入的. ...
- resume|issue|transmit|sake|obliged|beyond her wildest dreams|echo|transmission|immense|consistent |convey to| boasted|satisfaction|rub|enrol|demonize
If an activity resumes, or if you resume it, it startsagain after a pause. (中断后)继续,重新开始 Normal servi ...
- oracle存储过程随笔
有时间要把最近总结的存储过程的问题总结一下,先占坑: create or replace procedure test_proc2 as cursor cur is select YWR,YWRZJH ...
- HDU-1403-Longest Common Substring(后缀数组的高度数组运用)
这题要求两个串中的最长相同子串的长度.高度数组可以求一个串中的最长相同子串的长度.所以想到把两个串连起来,但是这样又会产生一些新的串(第一个串的结尾和第二个串的开头组成的)于是在两个串中间放一个'\0 ...
- labview程序结构
三种范式:面向过程.面向事件,面向对象:六种模式:标准状态机.消息队列.生产者/消费者(事件).生产者/消费者(数据).用户界面事件处理.主/从 事件结构相当于是一个while语句里边嵌套了一个条件结 ...
- node新人
node 使用 http和express创建服务器环境 如 apache iis等 不需要配置一堆文件 为啥使用node 省事 v8引擎 异步js 不影响浏览者浏览网站 redis ...
- DOS命令编译JAVA程序
上篇文章给大家写了怎么安装JDK配置,现在这篇文章我们就来学习下怎么在DOS命令下编译JAVA程序,以后没编译器都可以直接编译啦(嘻嘻!) 我这里就用永远的 “Hello wrold!”来演示下吧. ...
- Django学习之路05
Django模板层 模板层语法(两类) 变量相关:{{ }} 逻辑相关:{% %} 给模板传值的方法 #方法1 #通过字典传值,指名道姓,例如下 return render(request ...
- Data Visualization and D3.js 笔记(1)
课程地址: https://classroom.udacity.com/courses/ud507 什么是数据可视化? 高效传达一个故事/概念,探索数据的pattern 通过颜色.尺寸.形式在视觉上表 ...
- http2.0与WebSocket的关系是怎么样的
按照OSI网络分层模型,IP是网络层协议,TCP是传输层协议,而HTTP是应用层的协议.在这三者之间,SPDY和WebSocket都是与HTTP相关的协议,而TCP是HTTP底层的协议.WebSock ...