Skip to content

自行部署 Wafer 的一点心得 #8

Open
@ITJaye

Description

@ITJaye

自行部署 Wafer 的一点心得

最近以官方的demo为例配置部署wafer,实现了小程序的授权登陆、获取用户信息以及小程序websocket聊天室功能。这个过程中踩了几个小坑,特分享出来,让大家少碰壁。自行部署前最好是要弄明白wafer的业务流程,需要准备相应的服务器环境、所需的代码,以及清楚明白你需要配置什么。

一、准备工作

  • 服务器:服务器环境centOS 6.8 + php7 + nginx/1.9.10

  • wafer SDK代码,以官方demo为例 下载

  • 提供会话服务的代码 下载

  • 客户端小程序demo代码 下载

二、配置文件

1. 配置以支持https访问

如何配置免费的https,自行百度

2. 配置wafer的SDK配置文件sdk.config

新建个文本文件粘贴如下代码:

{
    "serverHost": "www.xx.com",
    "authServerUrl": "http://www.xx.com/itjaye/wafer-session-server/",
    "tunnelServerUrl": "https://ws.qcloud.com",
    "tunnelSignatureKey": "xxxxxx",
    "networkTimeout": 30000
}
  • serverHost 你的业务服务器的域名,上面部署wafer SDK代码
  • authServerUrl 会话服务地址,登陆授权会用到。上面部署会话服务的代码
  • tunnelServerUrl 这个是信道服务器地址,不需要部署,直接使用腾讯提供的信道服务器地址https://ws.qcloud.com
  • tunnelSignatureKey 修改成自己的签名秘钥,随便自己定义一个就行

将文件保存为sdk.config并上传到/etc/qcloud/sdk.config (需要在/etc/下面自己创建下qcloud这个目录)

3. 配置会话服务调用的数据库连接配置文

上线前需要在服务器如下配置

a.在数据库中创建cAuth数据库并导入根目录下的mina_auth/db.sql

b.修改wafer-session-server/system/db/db.ini代码

[db]
host = 数据库服务器IP
port = 3306
user_name = 用户名
pass_wd = 密码
data_base = cAuth

4. 配置小程序管理平台

登陆微信小程序管理平台https://mp.weixin.qq.com/ 在 『设置』-『开发设置』 里添加如下url

wss://ws.qcloud.com、https://ws.qcloud.com

5. 配置客户端代码

修改下客户端demo中的/config.js的host为你的业务服务器上wafer SDK地址

var host = 'www.xx.com/itjaye/wafer-php-server-demo';

6. 配置wafer-php-server-demo

针对 wafer-php-server-demo代码,记得先在该文件夹下执行composer install操作来安装wafer SDK

需要分配配置下SDK本身所采用的CI框架来支持伪静态,隐藏index.php

修改代码中application/config/config.php里的配置
修改26行为

    $config['base_url'] = 'https://www.xx.com/itjaye/wafer';

修改38行为

    $config['index_page'] = '';

同时,在Nginx服务器的配置文件中增加如下设置以支持ci框架的伪静态

location /itjaye/wafer/ {
			index  index.html index.php;
			if (!-e $request_filename) {
				rewrite  ^(.*)$  /tjaye/wafer/index.php?s=$1  last;
				break;
			}
        }

三、上传代码

在服务器上web根目录下创建一个文件夹,我的文件夹名为itjaye,把上面wafer-php-server-demo文件夹和wafer-session-server文件夹上传到该文件夹下即可。

四、其他问题

针对会话服务由于是php7 需要如下修改,

  • mysql 的函数换成mysqli支持,修改方法可以参考

  • 采用function __construct 构造函数来替换和类名相同的函数名

五、参考资料

https://github.com/tencentyun/wafer/wiki

有疑问的可以加官方qq群交流 216602757

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions