windows10部署Open-IM,踩坑记录
官方部署文档地址
https://doc.rentsoft.cn/#/demo/server_deploy/windows
部署方式:源码部署
部署版本:Open-IM-Server-main、Open-IM-SDK-Core-2.3.3
部署环境:windows10
这个链接是官方整理的部署文档,但是按照官方文档的步骤部署完之后,demo跑不通,一路排查整理,终于跑通,在这里整理并记录此次的部署过程,下面按官方的步骤一步步下来。
git环境
此处如果不是通过git进行源代码clone的话,直接下载源码的可以忽略,不用也可以。
GoLang环境
此处按照文档,使用1.17版本也可以,实测用官网最新的1.19版本也没问题。
但是这里的命令行,需要添加多几行命令,具体完整如下:
setX GOPROXY https://goproxy.cn,direct /M
go env -w GO111MODULE=on
go env -w GOPROXY="https://goproxy.io,direct"
go env -w GOPRIVATE="*.corp.example.com"
go env -w GOPRIVATE="example.com/org_name"
这里是第一个坑,不然会遇到有部分依赖包在编译的时候,下载失败。
Gcc环境
这里我选择的是MinGW的方式,安装也简单,下载完毕后,配置环境变量即可,比较简单,就不过多赘述。
JAVA环境
帖主是java崽,手头上每部电脑先装的也是这个,不做赘述。
服务发现
这里按照文档部署即可,不过这里有个地方令人纳闷,我使用powerShell 运行的时候一直有问题(time out),但是用cmd就没问题,能跑起来就行,不纠结这个。
对象存储服务
minio也是按照部署文档说的,直接按部就班部署配置启动一条龙就行,然后创建两个bucket,后面配置文件能用上,一个openim ,一个app。
数据库
需要MySQL和MongoDB,直接下载部署启动,就可以了,不用预先创建数据库,后面启动时会自动创建。
但是这里要检查你当前的环境有没有sqlite,没有的话还需要安装sqlite,因为实际上window环境还用到了sqlite。
sqlite安装方法就按下面这个帖子就可以了比较简单:
https://cloud.tencent.com/developer/article/2056226
缓存中间件
这里下载完直接运行就完事了
消息中间件
这里有一个坑需要注意:第二行命令修改一下,替换为下面的
cd %kafka%
bin\windows\zookeeper-server-start.cmd config\zookeeper.properties
bin\windows\kafka-server-start.cmd config\server.properties
编译OpenIM
这里主要是Open-IM-SDK-Core有坑:
- Open-IM-SDK-Core源码没有在Open-IM-Server里; 解决方法:上 https://github.com/OpenIMSDK/Open-IM-SDK-Core 下载 注意 https://github.com/OpenIMSDK/Open-IM-Server 下载main分支源码 https://github.com/OpenIMSDK/Open-IM-SDK-Core 下载2.3.3版本的分支 实测只有这两个版本组合编译完跑的起来
- Open-IM-SDK-Core下载完之后,编译不成功 缺少github.com/jmespath/go-jmespath依赖 解决办法: 进入到Open-IM-SDK-Core目录下,运行以下代码添加依赖
go get github.com/jmespath/[email protected] mod tidy
至此就搞定编译的坑,但是注意,如果编译和运行是不同的机子的话,记得保持两个机子的go版本,不然运行可能是闪退。## 修改Open-IM的配置文件 这里只提到config.yaml文件,实际上还有usualConfig.yaml 这两个文件的修改原则是一致的,一并修改了就好。
启动依赖的软件
这里其实在上面就已经启动完了,比较鸡肋的章节。
启动Open-IM
终于就临门一脚了!但是还有坑,没想到吧!
- 要先在bin目录的创建一个目录 /db/sdk/,也可以在其他地方创建,比如我是在D:/db/sdk/,先创建好,下面要用到。
- 这里的open_im_sdk_server.exe 是错误的,需要修改成下面的
start cmd /C .\open_im_sdk_server.exe -openIMDbDir "D:/db/sdk/" -openIM_api_address "http://127.0.0.1:10002" -openIM_ws_address "ws://127.0.0.1:10001" -sdk_ws_port 10003 -openIM_log_level 6
这里如果你在1步骤创建的目录是 …/db/sdk/,并且端口都是用的默认的10001、10002、10003的话,那只需要用下面这种start cmd /C .\open_im_sdk_server.exe
就运行windows_start_all_service.cmd启动就可以了,到这里就全部部署并且启动完成了。
开放端口
这里文档里边的内容是没有问题,直接复制运行就行了
运行DEMO测试验证
https://doc.rentsoft.cn/#/demo/web_demo
我用的是web进行验证,因为是内网环境,没法用在线测试就用的跑的前端源码测试的,按照demo直接跑完事了,注意他的环境要求即可
效果截图
搞定,收工~~
版权归原作者 running17 所有, 如有侵权,请联系我们删除。