Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138815
  • 博文数量: 48
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-21 14:51
个人简介

天不设牢,二人自在心中舍牢。顺天而行者,心中无牢。

文章分类

全部博文(48)

文章存档

2013年(48)

我的朋友

分类: 架构设计与优化

2013-05-22 14:05:36

一、二进制安装

        最简单的安装方式是使用ProcessOne发布的Ejabberd二进制安装包来安装,安装包在下载。

        安装包将部署和配置一个完整的不需要任何依赖的Ejabberd服务器。

1、解压       

         下载安装包后,解压安装包步骤比较纠结,采用Windows解压,用Linux比较蛋疼,具体步骤如下:

        (1)在Windows下用WinRAR解压安装包ejabberd-2.1.11-linux-x86_64-installer.run.gz到当前目录;

        (2)在当前目录下会看到文件ejabberd-2.1.11-linux-x86_64-installer.run,修改该文件后缀为.tar即ejabberd-2.1.11-linux-x86_64-installer.tar;

        (3)用WinRAR解压文件ejabberd-2.1.11-linux-x86_64-installer.tar到当前目录下,此时会看到ejabberd-2.1.11-linux-x64-installer.bin;

        (4)将ejabberd-2.1.11-linux-x64-installer.bin文件上传到Linux即可。

2、安装        

        上传完后就可以在Linux上安装了,安装步骤如下:

        

        ...

        

        中间的省略号是一堆协议之类的,上面的步骤主要包括改变文件可执行权限、执行文件开始安装、选择安装路径、服务器域名、管理员及密码、是否集群等。集群后文书会详解。

3、启动

        按照上面步骤把Ejabberd安装到/home/scq/ejabberd-2.1.11下了,如下可以启动Ejabberd:

        

        

        如下可以停止Ejabberd:

        

        Ejabberd可以在任何时候手动启动或在系统启动时由系统自动启动。

        要手动启动和停止,可以如上面所示执行Ejabberd安装目录下的bin目录下的脚本start和stop即可。

        在类Unix系统中,如果想让Ejabberd开机时自动启动,需要执行如下步骤:

        (1)将Ejabberd安装目录下的bin目录下的ejabberd.init拷贝到类似/etc/init.d/ejabberd(具体取决于操作系统版本);

        (2)新建一个系统用户ejabberd,该用户将于启动该服务脚本;

        (3)以root身份调用/etc/init.d/ejabberd来启动服务。

        需要注意的是:如果Ejabberd不能正确启动并且生成dump,则表示有严重问题,执行命令bin/ejabberdctl live可以看到Erlang提供的错误消息并且找到问题所在。

        ejabberdctl管理脚本位于bin目录,关于ejabberdctl和用于微调Erlang运行时系统的可配置选项,后文书有详细解说。

        

二、源码安装

        发布Ejabberd稳定版的规范方式是源码包,从源码编译Ejabberd在类Unix系统是非常容易的,只要你的系统拥有所有的依赖包。

1、要求

       为了在一个类Unix操作系统编译Ejabberd, 你需要:

        (1)GNU Make

        (2)GCC

        (3)Libexpat 1.95 或更高版本

        (4)Erlang/OTP R10B-9 或更高版本,推荐的版本是R12B-5,对R13的支持是实验性质的。

        (5)OpenSSL 0.9.6 或更高版本,用于STARTTLS、SASL和SSL加密,可选的,高度推荐。

        (6)Zlib 1.2.3 或更高版本,用于支持流压缩 (),可选的。

        (7)Erlang mysql library,可选的,用于支持 MySQL验证或存储。

        (8)Erlang pgsql library.,可选的,用于支持 PostgreSQL验证或存储。

        (9)PAM library,可选的,用于F可插拔的验证模块 (PAM)。

        (10)GNU Iconv 1.8 或更高版本,用于 IRC 网关 (mod_irc),可选的, 在系统里不需要GNU Libc。

        (11)ImageMagick’s 转换程序,可选的,用于CAPTCHA。

        (12)exmpp 0.9.2 或更高版本,可选的,用于以 XML文件格式导入/导出用户数据。

2、下载

        Ejabberd的发布版本在ProcessOne ejabberd,下载页面在。

        另外,最新的开发源码可以用使用命令行从git仓库获取:

        #git clone git://git.process-one.net/ejabberd/mainline.git ejabberd 

        #cd ejabberd

        #git checkout -b 2.1.x origin/2.1.x

3、编译
        编译Ejabberd可执行如下命令:

        #./configure

        #make

        编译配置脚本允许很多选项,要获得所有选项列表执行如下命令:

        #./configure --help

        一些你可能感兴趣修改的选项如下:

        --prefix=/

    指定运行make install命令时文件将要拷贝的路径。


    --enable-user[=USER]

    允许普通系统用户执行ejabberdctl脚本,读取配置,读写spool目录,读写log目录。这个帐号的用户和组必须在运行make install之前就存在于机器上,这个帐号不需要一个暴露的HOME目录, 因为缺省将使用/var/lib/ejabberd/。

    --enable-pam

    允许PAM验证方法。

    --enable-odbc or --enable-mssql

    如果你想使用外部数据库则需要这个选项。

    --enable-full-xml

    允许使用基于XML的优化,例如:它将使用CDATA来逃逸XMPP流中的字符串,只有你确定你的XMPP客户端有一个全兼容的XML分析器才使用这个选项。

    --disable-transient-supervisors

    对临时进程禁止使用Erlang/OTP监督。

4、安装

    安装Ejabberd到目标目录,执行如下命令:

    #make install

    注意安装Ejabberd的时候你可能需要系统管理员权限。

    缺省的新建文件和目录如下:

    /etc/ejabberd/ 

        配置文件目录: 

       ejabberd.cfg 

            ejabberd配置文件 

       ejabberdctl.cfg 

            管理脚本配置文件 

       inetrc 

            网络DNS配置文件

---------------------------------------

    /lib/ejabberd/ 

        ebin/ 

            Erlang二进制文件(*.beam) 

        include/     

            Erlang头文件(*.hrl) 

        priv/ 

            运行时需要的其他文件 

        bin/ 

            可执行程序 

        lib/ 

            二进制系统文件(*.so) 

        msgs/ 

            翻译文件(*.msgs) 

---------------------------------------

        /sbin/ejabberdctl 

                管理脚本

---------------------------------------

        /share/doc/ejabberd/ 

                ejabberd文档

---------------------------------------

        /var/lib/ejabberd/ 

                Spool目录: 

                .erlang.cookie 

                        Erlang cookie文件

                acl.DCD, ... 

                        Mnesia数据库spool文件(*.DCD, *.DCL, *.DAT) 

---------------------------------------

        /var/log/ejabberd/ 

                日志目录

                ejabberd.log 

                        ejabberd服务日志 

                erlang.log 

                        Erlang/OTP系统日志

5、启动

    你可以使用ejabberdctl命令行管理脚本来启动和停止Ejabberd,如果你提供了配置选项--enable-user=USER,你可以以那个系统帐号或root的身份执行ejabberdctl,具体如下:

    #ejabberdctl start

    #ejabberdctl status

    The node ejabberd@localhost is started with status: started

    ejabberd is running in that node

    #ejabberdctl stop

    

     Ejabberd可以在任何时候手动启动或在系统启动时由系统自动启动。

     要手动启动和停止,可以如上面所示执行Ejabberd安装目录下的bin目录下的脚本start和stop即可。

     在类Unix系统中,如果想让Ejabberd开机时自动启动,需要执行如下步骤:

    (1)将Ejabberd安装目录下的bin目录下的ejabberd.init拷贝到类似/etc/init.d/ejabberd(具体取决于操作系统版本);

    (2)新建一个系统用户ejabberd,该用户将于启动该服务脚本;

    (3)以root身份调用/etc/init.d/ejabberd来启动服务。

    需要注意的是:如果Ejabberd不能正确启动并且生成dump,则表示有严重问题,执行命令bin/ejabberdctl live可以看到Erlang提供的错误消息并且找到问题所在。

    ejabberdctl管理脚本位于bin目录,关于ejabberdctl和用于微调Erlang运行时系统的可配置选项,后文书有详细解说。


三、其它方式安装

1、用操作系统特定的包安装

    一些操作系统提供了特定的适应系统体系结构和库的Ejabberd包。它经常也会检查依赖的包并执行基本的配置任务,类似新建初始管理帐号,例如Debian和Gentoo。更多信息请查找你的操作系统提供的资源。那些包经常新建一个脚本,类似/etc/init.d/ejabberd,在开机时启动和停止ejabberd服务。

2、用CEAN安装

    CEAN(Comprehensive Erlang Archive Network)是一个存放了很多Erlang程序二进制包的仓库,包括了ejabberd和它所有的依赖包。这些二进制包可用于多种不同的系统结构,所以对于二进制安装包和操作系统的ejabberd包来说,这是一个备选,根据你如何处理你的CEAN安装而定,你需要新建自己的ejabberd启动脚本,缺省的ejabberdctl脚本位于ejabberd的priv目录并且用作一个示例。


四、新建XMPP管理账号

    你需要一个XMPP帐号并赋予它管理权限来进行ejabberd Web管理:

1、在你的ejabberd服务器上注册一个XMPP帐号, 例如admin1@example.org,有两个办法来注册一个XMPP帐号,具体如下:

    (1)使用ejabberdctl

        #ejabberdctl register admin1 example.org FgT5bk3

    (2)使用一个XMPP客户端进行带内注册

2、编辑ejabberd配置文件来给你创建的XMPP帐号赋予管理权限,具体如下:

    {acl, admins, {user, "admin1", "example.org"}}.

    {access, configure, [{allow, admins}]}.

    你可以赋予管理权限给多个XMPP帐号, 也可以赋予权限给其它XMPP服务器。

3、重启ejabberd以装载新配置。

4、用浏览器打开Web管理界面(),确保键入了完整的JID作为用户名(在这个例子里是: admin1@example.org)你需要加一个后缀的原因是因为ejabberd支持虚拟主机。


五、升级Ejabberd

    要升级一个Ejabberd到一个新版本, 简单地卸载这个旧版本, 然后安装新版本就可以了。当然, 重要的是配置文件和Mnesia数据库spool目录不能删除。

    Ejabberd启动时,会在需要的时候自动更新Mnesia数据表定义。如果使用一个外部数据库来存储一些模块, 那么检查新的Ejabberd版本的发布备注(release notes),以确定是否需要更新那些表。


        附注:更多详细的信息也可以参看,还有。




阅读(1144) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~