先说下为啥我要那么麻烦整这个环境配置?
某塔不好用吗?某皮不好用吗?
还真不是呢,顺便吐槽下,某塔win下强制绑定手机(实名要求),某皮担心还有其他漏洞,之前用过有点担心。
刚好最近想用win2019虚拟机来搭建开发环境,同时发现用了别人套件后习惯后,发现自己的手动环境能力居然退步那么多。。。老了~哎。。。。
刚好复习下,同时记录下整体手动搭建流程,大部分是坑~下次还用时免得忘记了。
win下本来想用iis的,应该是最佳方案,搭建也是最简单的,但是想增加点难度同时想灵活扩展功能,iis就有点不太行,最后选型采用openresty,因为可编程的lua比较强大,同时扩展性没毛病,重点是我想装waf。
整体步骤:
1.先官方下载openresty win版本
2.配置nginx.conf 这个借鉴了某塔我win版本(省事啊)
3.整合lua_waf 这个百度下很多,在nginx.conf里面加入 include luawaf.conf;,启动。
中间过程的坑如下:
1.waf启动失败,提示:
nginx: [alert] failed to load the 'resty.core' module
错误
解决方法:luawaf.conf中加入openresty下的lua lib路径
lua_shared_dict limit 10m; lua_package_path "E:/localhost/openresty/lualib/?.lua;E:/localhost/openresty/conf/waf/?.lua"; init_by_lua_file E:/localhost/openresty/conf/waf/init.lua; access_by_lua_file E:/localhost/openresty/conf/waf/waf.lua;
搜索引擎上的解决方案是linux下的,win系统下没有此项方案,我自行测试完成的
2.php启动失败,使用
php-cgi.exe -b 127.0.0.1:20072 -c php.ini
启动提示dll不全,根据提示到微软官网下载vc++程序包解决。
3.网站防跨站设置失败,使用.user.ini中设置 open_basedir时提示:
PHP Warning: Unknown: open_basedir restriction in effect. File
错误
解决方案:之前都是linux下设置过,发现win下使用此文件时,需要用
;
符号做间隔符,和linux下不一样,格式如下:
open_basedir="E:/wwwroot/www.xmspace.net/;C:/Windows/Temp/;E:/localhost/temp/;E:/localhost/temp/session/"
win下面使用 file_put_contents 函数读取绝对路径是无权限
E:/wwwroot/www.xmspace.net/;
改成:
E:\wwwroot\www.xmspace.net\;
就可以了
3.启动nginx和php比较不方便。
解决方案:做了几个bat启动,临时先用下,后期准备用golang做给控制界面,到时候会方便点。bat内容如下:
nginx_php_start.bat
@echo off echo Starting Nginx... E: cd E:/localhost/openresty start nginx echo Starting PHP FastCGI... cd E:/localhost/openresty/php72 RunHiddenConsole.exe php-cgi.exe -b 127.0.0.1:9000 -c E:/localhost/openresty/php72/php.ini
nginx_php_stop.bat
@echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul exit
5.php单线程启动,容易自动挂掉
解决方案:用xxfpmW 做服务监听,自动控制启动php线程,将xxfpmW放入php安装目录,执行xxfpmW.vbe就可以了
如果需要服务启动 用 nssm 将xxfpmW.bat设置为系统服务,就可以实现开机或重启自动启动了。
6.nginx服务化
解决方案:使用 winsw工具
下载 后 将其放在 Nginx安装目录下 修改exe文件为nginx-service.exe
新建配置文件:nginx-service.xml和nginx-service.exe.config
cmd下 运行
nginx-service.exe install
7.用Golang做管理面板,制作中。