首先,去官网下载ejabberd
https://www.process-one.net/en/ejabberd/archive/
这里我们选择rpm包安装,大家也可以选择其他方式,之所以不用最新的19.08是因为进入管理台页面会显示host not served,我不知道是什么原因,可能是新版需要配置什么东西,由于时间关系,没有研究
下载完成后,进入Xshell,连接上服务器
控制台进入想放的文件夹,比如/usr/local
cd /usr/local
然后点击ftp按钮,将会打开上传文件的窗口,并自动定位到此文件夹,然后从左边选择下载的rpm包,并拖拽到右边,注意别拖到某个文件夹里面,可以最大化后再拖拽,如果不会使用Xshell和Ftp,请自行百度
上传完了然后就是安装了,在当前目录下执行
yum localinstall xxxxx.rpm
我们使用yum这个软件管理工具的本地安装命令来安装
安装时会列出一堆信息来,让你确认安装,根据提示,输入y,表示确定安装
当我们看到complete,就表示安装完成,期间并没有出现设置host,以及管理员账号密码的步骤,那我们一会儿在配置文件里面改
安装完成了,可是安装到哪儿了呢,其实是安装到了linux的默认软件安装目录下,也就是/opt下,所以我们进入opt
先返回顶级目录
cd /
再进入opt目录
cd /opt
查看里面有什么
ls
会发现 ejabberd ejabberd-19.05
此时我们可以进入ejabberd下的conf目录
cd ejabberd/conf
查看里面有什么
ls
会发现有 cacert.pem dhparams.pem ejabberdctl.cfg ejabberd.yml inetrc server.pem
而ejabberd.yml就是ejabberd的配置文件了,我们需要打开它看看
vim ejabberd.yml
打开后我们发现第一行就是host,这个是系统随机分配的
language: "en"
hosts:
- "ijjkklfeiyngljolZ"
然后我们把光标移动到ijjkklfeiyngljolZ上,按shift 加 # ,会搜索出来里面一共有三处引用这个host的,我们可以把这三处都改成我们自己需要的,改完了保存退出,先按 Esc,再输入 : ,再输入wq就可以了
由于不知道系统分配的admin管理员的密码,我们可以自己再注册一个,首先返回上一级
cd ..
直到返回到/opt,然后我们进入 bin
cd ejabberd-19.05/bin
先启动ejabberd
./start
再执行注册命令
./ejabberdctl register admin1 hostname 123456
admin系统安装软件的时候已经注册过了,我们注册admin1,hostname就是刚刚在配置文件中改的那个hosts
然后将防火墙的5280和5222端口号开启
firewall-cmd --zone=public --add-port=5280/tcp --permanent
firewall-cmd --zone=public --add-port=5222/tcp --permanent
重启防火墙使配置生效
firewall-cmd --reload
然后配置阿里云的安全组规则,开放这两个端口号
此时,或者等几分钟,我们在浏览器输入http://服务器IP:5280/admin,然后再输入我们刚才注册的用户名(用户名格式是admin1@hostname)密码,应该就可以登录后台管理页面了
接下来讲一下如何使用mysql数据库替换掉ejabberd内置的数据库
大致分为三个步骤,就像把大象放到冰箱里面一样
第一步,在mysql软件中为ejabberd创建一个数据库
第二部,在这个数据库中创建出和内置数据库一模一样的一堆表
第三部,在配置文件中指定使用mysql数据库
首先来看第一步,
使用Navicat连接上我们的mysql数据库
然后在根节点右击,选择 新建数据库,输入数据库名称,以及编码,排序规则
创建完成后,开始第二步,创建表
按照官方文档来,去ejabberd的github上下载mysql.sql文件
https://github.com/processone/ejabberd/tree/master/sql
下载完成后,在Navicat中右击刚刚创建的数据库,选择 运行sql文件...
找到刚刚下载的mysql.sql,运行它
成功后,开始第三步
再次进入ejabberd.yml文件,加入以下内容
default_db: sql //指定默认使用sql类型数据库
sm_db_type: sql //指定session manager
sql_type: mysql //指定使用mysql
sql_server: localhost //指定host
sql_port: 3306 //指定端口号
sql_database: ejabberd //指定数据库名称
sql_username: root //数据库管理员名字
sql_password: 123456 //数据库管理员密码
复制代码如下
default_db: sql
sm_db_type: sql
sql_type: mysql
sql_server: "server.company.com"
sql_port: 3306
sql_database: "mydb"
sql_username: "user1"
sql_password: "**********"
然后保存退出,此时我们需要重启ejabberd,然后再重新注册管理员admin
进入bin目录下执行
./ejabberdctl register admin hostname 123456
然后我们打开Navicat看一下mysql的ejabberd数据库的users表中是不是多了一条,先刷新一下这个表
如果多了一条,那证明我们现在使用的是mysql了 ,可以用这个用户名密码登录web管理台了
按理说安装ejabberd会让我设置host,admin密码的,我在windows上安装是有这个步骤的,但是到了cenos上没有,我也不知道为什么,如有错误之处欢迎指正