|
Java_OpenFire_PostgreSQL
基于OpenBSD4.3 i386系统的JAVA编译及OpenFIRE&PostgreSQL应用
版权:没有 引用请注明出处,谢谢!作者:尘羽星翔 前言1 什么是OpenFireOpenfire 采用Java开发的开源的实时协作(RTC)服务器,基于XMPP(Jabber)协议。 您可以使用它轻易的构建高效率的即时通信服务器. Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。 由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务 简单的说是类似MSN的实时通信系统 2 什么是PostgreSQLPostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。 阅读指南:所有需要手工录入的部分都用加阴影的字符表示,需要特别注意的地方以【】字符加注. 【开始编译以前,请将ports升级到最新】 一、安装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.confjava编译的时候需要检测/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 编译安装jdkJDK是java的开发环境 make install b 编译安装jreJRE是java的运行环境,如果不做开发,只是运行OpenFIRE的话,jre就足够了 env SUBPACKAGE=-jre make install c 下载java编译所需文件编译java的所需的文件需要【手动复制】到DISTDIR指定的位置 默认是/usr/ports/distfiles 编译所需文件make运行以前会有提示显示编译所需java文件的位置和名称,按提示下载并复制就可以了 如果缺少文件的话会有"Error code 1"的错误提示,编译所需下载的文件大概是 bsd-jdk15-patches-8.tar.bz2 bsd-jdk16-patches-3.tar.bz2 bsd-jdk16-patches-4.tar.bz2 javaPathHelper-0.3.tar.gz 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 jdk-1_5_0_14-solaris-i586.tar.Z jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar jdk-7-icedtea-plugs-1.6.tar.gz openjdk7-b24.tar.bz2 (本人下载这些文件用了半天的时间,确切需下载的文件记不清楚了,哪位朋友有完整的下载文件列表,请帮忙订正) 编译及安装过程大概需要5个小时 5 设置JAVA环境JAVA的环境可以通过系统变量和用户变量两种方法来设置 系统变量对整个系统中所有用户起作用,用户变量只对设置的用户起作用 文中以jre1.6为例,具体配置根据读者安装的java环境自行修改 a 设置系统变量建立/etc/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 保存退出 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`
fic 测试JAVA环境重新登陆系统令设置的环境变量生效,输入 java -version 如果显示的是java相关版本信息,说明java已经生效,可以进行取消linux的支持,并进行下一步的安装 (注:本人编译的时候是按照1.7编译的,环境设置都正确,可是java提示错误,可能是ports的问题) 二、安装PostgreSQL1 安装数据库进入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 b 运行数据库postgres -D /var/postgresql/data 或者 pg_ctl -D /var/postgresql/data -l logfile start 如果没有提示错误,pgsql就已经运行了 c 建立新用户建立超级用户 createuser 【-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】 d 建立数据库createdb -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"
fib 设置关机自动关闭在/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
fi4 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配置文件 三、 安装OpenFIREOpenFIRE服务器端最新版本openfire_3_5_1下载 服务器端插件下载 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 解压openfiretar xzvf 你的openfire压缩包位置 -C /var c 修改 openfire权限cd /var chown -R 【openfire用户名】:【openfire组名】 openfire/ d 运行openfiresu - 【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四 设置SparkSparkWIN下客户端最新版本 2.5.8下载 程序安装完毕后 点击帐户来申请账号 服务器中填入OpenFIRE服务器所用ip 后记:终于写完了这篇文章,如果您发现本文有什么不对的地方,请和我联系 作者:尘羽星翔 E-mail:wosl2001(at)gmail.com 同时,希望欢迎有同样兴趣的朋友来一起研究 QQ群:51126069 欢迎您的加入! |
Sign in to add a comment
http://download.java.net/tiger/ http://www.eyesbeyond.com/freebsddom/java/JDK15JRLConfirm.html|bsd-jdk15-patches-8.tar.bz2 http://www.eyesbeyond.com/freebsddom/java/JDK16JRLConfirm.html|bsd-jdk16-patches-3.tar.bz2 http://www.eyesbeyond.com/freebsddom/java/JDK16JRLConfirm.html|bsd-jdk16-patches-4.tar.bz2 http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar|jdk-6u3-fcs-bin-b05-jrl-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-mozilla_headers-b05-unix-24_sep_2007.jar http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar|jdk-6u3-fcs-src-b05-jrl-24_sep_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-bin-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-fcs-src-b03-jrl-05_oct_2007.jar http://download.java.net/tiger/tiger_u15/jdk-1_5_0_15-fcs-src-b04-jrl-09_feb_2008.jar|jdk-1_5_0_15-fcs-src-b04-jrl-09_feb_2008.jar http://java.sun.com/products/archive/j2se/5.0/index.html|jdk-1_5_0_14-solaris-i586.tar.Z http://ftp.riken.jp/pub/OpenBSD/distfiles/javaPathHelper-0.3.tar.gz|javaPathHelper-0.3.tar.gz http://ftp.riken.jp/pub/OpenBSD/distfiles/jdk-7-icedtea-plugs-1.6.tar.gz|jdk-7-icedtea-plugs-1.6.tar.gz http://ftp.riken.jp/pub/OpenBSD/distfiles/openjdk7-b24.tar.bz2|openjdk7-b24.tar.bz2 http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire_src_3_5_2.tar.gz|openfire_src_3_5_2.tar.gz