最近以官方的 demo 為例配置部署 wafer,實現了小程序的授權登陸、獲取用戶信息以及小程序 websocket 聊天室功能。這個過程中踩了幾個小坑,特分享出來,讓 ...
服務器:服務器環境centOS 6.8 + php7 + nginx/1.9.10
wafer SDK代碼,以官方demo為例 下載
提供會話服務的代碼 下載
客戶端小程序demo代碼 下載
如何配置免費的https,自行百度
新建個文本文件粘貼如下代碼:
{
"serverHost": "www.xx.com",
"authServerUrl": "http://www.xx.com/itjaye/wafer-session-server/",
"tunnelServerUrl": "https://ws.qcloud.com",
"tunnelSignatureKey": "xxxxxx",
"networkTimeout": 30000
}
將文件保存為sdk.config并上傳到/etc/qcloud/sdk.config (需要在/etc/下面自己創建下qcloud這個目錄)
上線前需要在服務器如下配置
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
登陸微信小程序管理平臺https://mp.weixin.qq.com/ 在 『設置』-『開發設置』 里添加如下url
wss://ws.qcloud.com、https://ws.qcloud.com
修改下客戶端demo中的/config.js的host為你的業務服務器上wafer SDK地址
var host = 'www.xx.com/itjaye/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