OpenFIRE with OpenBSD 4.3 &JAVA&PostgreSQL
来自 ChinaUnix Wiki
基于OpenBSD4.3 i386系统的JAVA编译及OpenFIRE&PostgreSQL应用
版权:没有 引用请注明出处,谢谢!作者:尘羽星翔
目录 |
前言
1 什么是OpenFire
Openfire 采用Java开发的开源的实时协作(RTC)服务器,基于XMPP(Jabber)协议。 您可以使用它轻易的构建高效率的即时通信服务器. Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。 由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务 简单的说是类似MSN的实时通信系统
2 什么是PostgreSQL
PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。
阅读指南:所有需要手工录入的部分都用加阴影的字符表示,需要特别注意的地方以红色字符表示.
一、安装JAVA环境
1 开启linux支持
obsd支持原生的java运行环境,只在编译java的需要打开linux支持
sysctl kern.emul.linux=1
2 增加数据和堆栈限额(官方建议 非必须)
如果编译的时候出现类似于"Could not reserve enough space for object heap"这类的错误,就应该增加数据和堆栈的限额
ksh zsh bash环境(OB默认的就是ksh)
ulimit -dS 384*1024 ulimit -sS 8*1024
csh tcsh 环境
limit datasize 384m limit stacksize 8m
本人在512M内存的电脑中编译的时候,没有做这一步,也很顺利的编译通过了
3 建立/etc/mk.conf
java编译的时候需要检测/etc/mk.conf下有没有ACCEPT_JRL_LICENSE=Yes这个语句,没有的话会提示错误,因此应当手工建立该文件
我的mk.conf是
DISTDIR=/files/dist MASTER_SITE_OVERRIDE=ftp://ftp.freebsdchina.org/pub/OpenBSD/distfiles/${DIST_SUBDIR}/ PACKAGE_REPOSITORY=/files/packages FETCH_CMD=/usr/local/bin/wget ACCEPT_JRL_LICENSE=Yes
其中
DISTDIR是我指定的下载文件所在位置
PACKAGE_REPOSITORY是我指定的生成pkg的位置
只有ACCEPT_JRL_LICENSE=Yes是必须的
4 进入jdk目录开始编译安装
进去jdk的ports
cd /usr/ports/devel/jdk/1.7
a 编译安装jdk
JDK是java的开发环境
make install
b 编译安装jre
JRE是java的运行环境,如果不做开发,只是运行OpenFIRE的话,jre就足够了
env SUBPACKAGE=-jre make install
c 下载java编译所需文件
编译java的所需的文件需要手动复制到DISTDIR指定的位置
默认是/usr/ports/distfiles
编译所需文件make运行以前会有提示显示编译所需java文件的位置和名称,按提示下载并复制就可以了
如果缺少文件的话会有"Error code 1"的错误提示,编译所需下载的文件列表为:
- http://download.java.net/tiger/
- bsd-jdk15-patches-8.tar.bz2 http://www.eyesbeyond.com/freebsddom/java/JDK15JRLConfirm.html
- bsd-jdk16-patches-3.tar.bz2 http://www.eyesbeyond.com/freebsddom/java/JDK16JRLConfirm.html
- bsd-jdk16-patches-4.tar.bz2 http://www.eyesbeyond.com/freebsddom/java/JDK16JRLConfirm.html
- jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
- jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
- jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
- jdk-1_5_0_14-fcs-bin-b03-jrl-05_oct_2007.jar http://www.java.net/download/tiger/tiger_u14/jdk-1_5_0_14-fcs-bin-b03-jrl-05_oct_2007.jar
- jdk-1_5_0_14-fcs-src-b03-jrl-05_oct_2007.jar http://download.java.net/tiger/tiger_u14/jdk-1_5_0_14-fcs-src-b03-jrl-05_oct_2007.jar
http://download.java.net/tiger/tiger_u14/jdk-1_5_0_14-fcs-src-b03-jrl-05_oct_2007.jar
- jdk-1_5_0_14-solaris-i586.tar.Z http://java.sun.com/products/archive/j2se/5.0/index.html
- javaPathHelper-0.3.tar.gz http://ftp.riken.jp/pub/OpenBSD/distfiles/javaPathHelper-0.3.tar.gz
- jdk-7-icedtea-plugs-1.6.tar.gz http://ftp.riken.jp/pub/OpenBSD/distfiles/jdk-7-icedtea-plugs-1.6.tar.gz
- openjdk7-b24.tar.bz2 http://ftp.riken.jp/pub/OpenBSD/distfiles/openjdk7-b24.tar.bz2
- openfire_src_3_5_2.tar.gz http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire_src_3_5_2.tar.gz
编译及安装过程大概需要5个小时
5 设置JAVA环境
JAVA的环境可以通过系统变量和用户变量两种方法来设置
系统变量对整个系统中所有用户起作用,用户变量只对设置的用户起作用
文中以jre1.6为例,具体配置根据读者安装的java环境自行修改
a 设置系统变量
建立/etc/profile文件,加入
JAVA_HOME=/usr/local/jre-1.6.0 export JAVA_HOME PATH="$PATH:$JAVA_HOME/bin" export PATH
保存退出
b 设置系统变量
修改用户home目录里面的.profile文件,加入红色部分
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/local/jre-1.6.0/bin export PATH export JAVA_HOME=/usr/local/jre-1.6.0 export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar : ${HOME='/root'} export HOME umask 022 if [ -x /usr/bin/tset ]; then eval `/usr/bin/tset -sQ \?$TERM` fi
c 测试JAVA环境
重新登陆系统令设置的环境变量生效,输入
java -version
如果显示的是java相关版本信息,说明java已经生效,可以进行取消linux的支持,并进行下一步的安装
(注:本人编译的时候是按照1.7编译的,环境设置都正确,可是java提示错误,可能是ports的问题)
二、安装PostgreSQL
1 安装数据库
进入ports中postgresql,编译安装
cd /usr/ports/databases/postgresql make install
提示完毕以后,pgsql的客户端已经安装完毕,pgsql的数据库端,需要手动安装
pkg已经在编译pgsql客户端的时候生成了,位置由mk.conf中PACKAGE_REPOSITORY字段定义
默认位置是/usr/ports/packages/i386/all/
cd /usr/ports/packages/i386/all/ pkg_add postgres*
2 建立数据库
a 初始化数据库
su - _postgresql mkdir /var/postgresql/data initdb -D /var/postgresql/data -U postgres -A md5 -W
其中postgres 为pgsql的超级管理员,密码要记下,以后管理要用
b 运行数据库
postgres -D /var/postgresql/data
或者
pg_ctl -D /var/postgresql/data -l logfile start
如果没有提示错误,pgsql就已经运行了
c 建立新用户
建立超级用户
createuser -U postgres -P Enter name of role to add: 输入超级用户名 Enter password for new role:输入密码 Enter it again:确认密码 Shall the new role be a superuser? (y/n) y Password:超管口令
d 建立数据库
createdb -U postgres -O 超级用户名 -E UNICODE 数据库名称
3 设置自动运行和关闭
a 设置开机自动运行
在/etc/rc.local中加入
if [ -x /usr/local/bin/pg_ctl ]; then
echo -n ' postgresql'
su -l _postgresql -c "nohup /usr/local/bin/pg_ctl start \
-D /var/postgresql/data -l /var/postgresql/logfile \
-o '-D /var/postgresql/data' >/dev/null"
fi
b 设置关机自动关闭
在/etc/rc.shutdown中加入
if [ -f /var/postgresql/data/postmaster.pid ]; then
su -l _postgresql -c "/usr/local/bin/pg_ctl stop -m fast \
-D /var/postgresql/data"
rm -f /var/postgresql/data/postmaster.pid
fi
4 PostgreSQL 优化
a 修改 /etc/sysctl.conf
编辑 /etc/sysctl.conf,加入以下内容
kern.seminfo.semmni=256 kern.seminfo.semmns=2048 kern.shminfo.shmmax=50331648
b 修改/etc/login.conf
编辑/etc/login.conf,加入以下内容
postgresql:\
:openfiles-cur=768:\
:tc=daemon:
保存退出后,输入
cap_mkdb /etc/login.conf
重建login.conf.db文件
然后使用vipw或usermod修改postgresql
usermod -L postgresql postgresql系统用户名
其中 -L 指定的是修改的用户的登陆类
c 修改postgresql.conf文件
切换成postgresql用户
su - _postgresql
修改/var/postgresql/data/postgresql.conf
将max_connections 修改成你需要的并发链接数值,默认是40
保存退出后,重启数据库,输入
pg_ctl -D /var/postgresql/data -l logfile restart
来重启整个数据库,或者输入
pg_ctl -D /var/postgresql/data -l logfile reload
来重新加载postgresql配置文件
三、 安装OpenFIRE
OpenFIRE服务器端最新版本openfire_3_5_1[1]
服务器端插件[2]
1 服务器端安装
a 添加openfire系统用户
adduser Enter username []: openfire用户名 Enter full name []: Enter shell csh ksh nologin sh [ksh]:回车 Uid [1000]:回车 Login group _openfire [_openfire]:回车 Login group is ``_openfire. Invite _openfire into other groups: guest no [no]:回车 Login class authpf daemon default postgresql staff [daemon]:回车 Enter password []:输入密码 Enter password again []:确认密码 OK? (y/n) [y]: y Add another user? (y/n) [y]: n
b 解压openfire
tar xzvf 你的openfire压缩包位置 -C /var
c 修改 openfire权限
cd /var chown -R openfire用户名:openfire组名 openfire/
d 运行openfire
su - openfire用户名 /var/openfire/bin/openfire start
如果没有错误提示 top有java的进程,说明openfire启动正常
2 openfire服务配置
在浏览器中输入
http://服务器ip:9090
第一页Choose Language中选中中文(简体)
第二页服务器设置保持默认
第三页数据库设置选择标准数据库连接
第四页数据库设置 - 标准连接中需要设置以下项目
数据库驱动选项:PostgreSQL JDBC 驱动程序类:org.postgresql.Driver 数据库 URL:jdbc:postgresql://127.0.0.1:5432/数据库名称 用户名:超级用户名 密码:超级用户密码
第五页特性设置 初使设置
第六页管理员帐户 设置管理员密码管理员账号为admin
安装完成
3 设置openfire自动运行和关闭
a 设置开机自动运行
在/etc/rc.local中启动postgresql字段后面加入
if [ -x /var/openfire/bin/openfire ]; then echo -n ' openfire' su -l _openfire -c "/var/openfire/bin/openfire start >/dev/null" fi
b 设置关机自动关闭
在/etc/rc.shutdown中关闭postgresql字段前面加入
if [ -x /var/openfire/bin/openfire ]; then
su -l _openfire -c "/var/openfire/bin/openfire stop"
fi
四 设置Spark
SparkWIN下客户端最新版本 2.5.8[3]
程序安装完毕后
点击帐户来申请账号
服务器中填入OpenFIRE服务器所用ip
后记:
终于写完了这篇文章,如果您发现本文有什么不对的地方,请和我联系
作者:尘羽星翔
E-mail:wosl2001@gmail.com
同时,希望欢迎有同样兴趣的朋友来一起研究
QQ群:51126069
欢迎您的加入!
