小程序中的会话管理和业务服务器有哪些区别,如何合并。
如何合并微信小程序中的会话管理和业务服务器
文件迁移
因为两台服务器的镜像是不同的,里面的环境也不同。业务服务器是nginx+php-fpm的环境,而会话服务器是LAMP (Apache)。
首先把登录会话服务器,把文件传到业务服务器来。
会话服务器(172.16.0.15) /opt/lampp/htdocs/mina_auth
迁移到 ->
业务服务器(172.16.0.8) /data/release/session-wafer/mina_auth
[root@VM_0_15_centos htdocs]# pwd
/opt/lampp/htdocs
[root@VM_0_15_centos htdocs]# ls
mina_auth update_mina.sh
[root@VM_0_15_centos htdocs]# tar czvf session.tar.gz mina_auth
打包完成之后,把文件通过scp复制过去。
scp /opt/lampp/htdocs/session.tar.gz root@172.16.0.8:/data/release/
文件复制
然后,登录业务服务器
停掉php-fpm服务,命令:
kill -QUIT cat /run/php-fpm/php-fpm.pid
停掉nginx服务,命令:
nginx -s stop
解压session.tar.gz命令:tar xzvf session.tar.gz
把mina_auth创建到正确的目录下面。
设置nginx
因为业务服务器已经跑在了80端口,因而我们现在把会话服务器配置到8080端口会更加合理。所以我们是让一个nginx同时支持多个端口。
默认nginx有两个配置文件
把application-wafer.conf复制一份,起名为session-wafer.conf,并修改下面的内容。
这个时候,似乎掺的配置都修改完成了,但是还不能运行起来的,必须在程序上做一些修改。特别是加解密部分,可是花了赞哥成天的时间找出来。
修改小程序sdk配置
位置: /etc/qcloud/sdk.config
把这个地址改成你业务服务器本机的地址。如,我从 172.16.0.15 变成了 172.16.0.8:8080
修改解密算法
为这个问题我找了一天时间,非常郁闷。
位置:/data/release/session-wafer/minaauth/system/wxdecrypt_data/new/pkcs7Encoder.php
问题描述:
在会话服务器里,mcrypt插件是已经随LAMP安装了的,而在业务服务器,并没有这个插件。请看下面的phpinfo。(你需要在php.ini里面把phpinfo生产才能查看)
会话服务器里mcrypt是enabled的
原来打算在业务服务器上安装mcrypt插件,但是查看php的官网,特别是php 7.1后,mcrypt是特别不建议使用的,其可以用openssl替代。
$decrypted = openssldecrypt(aesCipher,′aes?128?cbc′,this->key, OPENSSLRAW_DATA, $aesIV);
修改后的效果为:
重新启动服务器
启动nginx和php-fpm,直接高点命令nginx和php-fpm
启动两个服务
测试工作
curl https://localhost/
curl https://localhost:8080/mina_auth/
注意:8080端口是默认不能通过外网访问进来的,只能通过VPC内网。
小程序工具提供多类型商城/门店小程序制作,可视化编辑 1秒生成5步上线。通过拖拽、拼接模块布局小程序商城页面,所看即所得,只需要美工就能做出精美商城。
更多微信小程序相关资讯,请前往:https://www.kesion.com/miniprogramschool/
KESION 科汛软件
KESION 科汛软件是国内领先的在线教育软件及私域社交电商软件服务提供商,长期专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。
公司核心产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化独立部署品牌网校和在线教育咨询等。KESION 不断通过技术创新,提供产品和服务,助力企业向数字化转型,通过科技驱动商业革新,让商业变得更智慧!
小程序底部导航Tabbar 底部导航栏这个功能是非常常见的一个功能,基本上一个完成的app,都会存在一个导航栏,那么微信小程序的导航栏该怎么实现呢 ...
微信小程序如何在地图选择地址并返回经纬度? 微信小程序的地址管理中,经常需要获取地址的详细地址信息和地址经纬度信息 实现效果: var that = this wx.chooseLocation({