现在聊天的软件越来越多了,类似QQ,微信,陌陌,层出不穷,这篇文章小编就大家演示一下如何搭建如何自己动手做一个QQ,是不是很狂野炫爆叼炸天,哈哈哈,至少装装X是可以的。废话不多说,开工。
小编先罗列一下用到的工具和平台
系统:阿里云ubuntu 12.04 64bit
软件:ejabberd 2.4
数据库: mysql
当然如果没有阿里云的孩子也不怕,本篇文章会教你如何在本地搭建(平台包括:mac,linux,windows)所需要的安装软件是ejabberd。简单介绍一下ejabberd。省的大家再去用某度。jabberd 是的 Jabber/XMPP 协议的即时通讯服务器,使用 GPLv2许可(自由和开放源码) ,基于 erlang/otp 开发。其它特性还包括, 跨平台,容错, clusterable和模块化。
开源免费,所以大家可以放心使用。
OK。下面开始搭建。下载ejabberd。网站地址是https://www.process-one.net/en/ejabberd/downloads/ 根据自己需要选择对应的软件
先说一下阿里云如何搭建的
安装相对比较简单 : sudo apt-get install ejabberd (为毛感觉安装比window安装还傻,哈哈我大linux威武)
一键安装完成后,需要注意到两个文件,也是后面需要配置用的
/etc/ejabberd这里面有配置文件ejabberd.cfg
/usr/lib/ejabberd这里面有ebin目录,是后面放mysql连接扩展的
下一步安装数据库;
sudo apt-get install mysql-server mysql-client libmysqlclient-dev 依旧so easy
安装mysql的过程中会配置密码等信息。
下一步便是有点麻烦的配置数据库,即把ejabberd的用户等聊天信息同步到数据库,
首先从https://github.com/processone/ejabberd/blob/master/sql/mysql.sql下载数据库初始化sql文件,放在某个目录下,比如/etc/ejabberd
这里这个文件需要手动下载,不能git下载,小编之前用git下载过来,发现与网页的内容完全不一样
然后终端登陆到数据库: mysql -u root -p
创建一个用户ejabberd
GRANT ALL ON ejabberd.* TO ‘ejabberd’@’localhost’IDENTIFIED BY ‘ejabberd’;
创建一个数据库
create database ejabberd;
使用前面那个mysql.sql文件创建初始表格
use ejabberd;
source mysql.sql 这里其实就是对数据库的表进行初始化。初始化完成之后。
show tables看一下,出现如下图所示信息
接着修改/etc/ejabberd/ejabberd.cfg
注释掉: {auth_method, internal}.
取消注释:{auth_method, odbc}.
取消注释并设置数据库名称和密码:
{odbc_server, {mysql, “localhost”, “ejabberd”, “ejabberd”, “ejabberd”}}.
修改模块如下:在原有模块名后面都增加_odbc
{mod_last_odbc, []},
{mod_offline_odbc, []},
{mod_privacy_odbc, []},
{mod_private_odbc, []},
{mod_pubsub_odbc, [ % requires mod_caps …
{mod_roster_odbc, []},
{mod_vcard_odbc, []},
如图
终端: ejabberdctl restart
这时候我们发现ejabberd服务启动失败,查看日志信息/var/log/ejabberd/ejabberd.log如下
=ERROR REPORT==== 2010-06-24 11:35:34 ===
C(<0.37.0>:ejabberd_check:63) : ejabberd is configured to use ‘mysql’, but the following Erlang modules are not installed: ‘[mysql,
mysql_auth,
mysql_conn,
mysql_recv]‘
=INFO REPORT==== 2010-06-24 11:35:34 ===
application: ejabberd
exited: {bad_return,{{ejabberd_app,start,[normal,[]]},
{‘EXIT’,database_module_missing}}}
type: temporary
原因是erlang缺少mysql模块,需要单独编译
那么从svn co https://svn.process-one.net/ejabberd-modules/mysql/trunk mysql
可以把需要的模块源码下载下来,主要是
mysql_recv.erl
mysql_conn.erl
mysql_auth.erl
mysql.hrl
mysql.erl
放到某个目录里面后分别使用erlc *.erl编译
可以得到几个文件
mysql.beam
mysql_auth.beam
mysql_conn.beam
mysql_recv.beam
把他们放到放到/usr/lib/ejabberd/ebin里面再次尝试重启ejabberd服务就搞定了
最后一步,配置管理员用户
ejabberdctl register admin [YourIPAddress] 123456
注册完毕用户后,查看一下数据库(下图是小编注册的信息)
使用web地址http://ip地址:5280/admin,登录即可开始进行服务器管理了
mac和windows安装ejabberd比较简单,配置数据库同上
下一篇:自己做QQ——ios聊天客户端
转载请注明:http://www.goofyy.com/blog goofyy技术宅的博客