网站首页php
Windows下的PHP7生产环境搭配
发布时间:2019-04-13 04:29:44编辑:slayer.hover阅读(3696)
不少服务器仍然使用windows服务器,需要部署windows(7,8,10)+PHP7.2+Nginx+Mysql/Oracle。
下载需要的文件: https://pan.baidu.com/s/1OIUEHBSyD8d-_KlHncNWRA, 提取码:9u64,
把RunHiddenConsole.exe和xxfpm.exe放置于D:/webServer/wnmp目录,
把PHP放置于D:/webServer/php7目录,
把Nginx放置于D:/webServer/Nginx目录。
1. 启动PHP7
因为PHP在windows下没有PHP-fpm进程管理器, 使用命令行启动PHP-cgi后, 会莫名自动退出。
解决办法是使用windows下的php-cgi进程管理器xxfpm,可用来做PHP的守护进程,保持永久在线。
xxfpm需要用到pthreadGC2.dll, 把pthreadGC2.dll复制到system32(32位系统)或者SysWOW64(64位系统)目录下,
执行:
regsvr32 pthreadGC2.dll
然后执行:
D:/webServer/wnmp/RunHiddenConsole.exe D:/webServer/wnmp/xxfpm.exe "D:/webServer/php7/php-cgi.exe -b 127.0.0.1:9000 -c D:/webServer/php7/php.ini" -n 4 -i 127.0.0.1 -p 9000
RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭
此命令的作用:使用xxfmp启动四个PHP进程,监听9000端口,当有PHP进程退出时会自动启动一个新的进程。
2. 启动nginx,并将Nginx设置为Windows服务
需要借助"Windows Service Wrapper"小工具:winsw-1.18-bin.exe
下载该工具后,将其放在 Nginx安装目录下,并重命名为nginx-service.exe,创建配置文件nginx-service.xml。
创建nginx-service.exe.config(为支持NET 4.0 runtime,默认只支持NET 2.0 runtime)
文件结构如下:
nginx-service.xml 内容如下:
<service> <id>nginx</id> <name>Nginx Service</name> <description>High Performance Nginx Service</description> <logpath>D:\webServer\nginx\logs</logpath> <log mode="roll-by-size"> <sizeThreshold>10240</sizeThreshold> <keepFiles>8</keepFiles> </log> <executable>D:\webServer\nginx\nginx.exe</executable> <startarguments>-p D:\webServer\nginx</startarguments> <stopexecutable>D:\webServer\nginx\nginx.exe</stopexecutable> <stoparguments>-p D:\webServer\nginx -s stop</stoparguments> </service>
nginx-service.exe.config 内容如下:
<configuration> <startup> <supportedRuntime version="v2.0.50727" /> <supportedRuntime version="v4.0" /> </startup> <runtime> <generatePublisherEvidence enabled="false"/> </runtime> </configuration>
在cmd中运行如下命令安装windows服务
D:\webServer\nginx\nginx-service.exe install
之后就可以在Windows服务面板中启动服务了,浏览器中就可以正常访问 http://localhost。
----------------------------------问题终结线------------------------------------------
上述方案,在网站访问量大的时候,PHP还是会出现阻塞,出现网站打不开的现象。
最终的解决方案:用phpstudy8里的apache+php。
评论