jboss7.1+jdk环境搭建

1 概述

1.1 概述

本文详细介绍了在Linux平台安装部署系统的步骤,供运维人员参考。本文的所有范例,建立在以下平台之上:

硬件:Intel x86_64平台,64CPU

操作系统:CentOS 6.4 x86_64 SMP 64位操作系统

JDKSUN JDK 7 Update for Linux 64

安装JDK

2.1 安装JDK软件

Oracle官网下载JDKrpm安装包 jdk-6u35-linux-x64-rpm.bin,上传至Linux系统的某目录下(本文以/data目录为例)。以root用户登录Linux,然后切换到/data目录,查看上传的安装包:

[root@centos ~]# ls -l
total 67296
-rw-r--r--  1 root  root  96316511 Feb 12 16:14 jdk-7u25-linux-x64.tar.gz
解压[root@centos ~]# tar zxvf jdk-7u25-linux-x64.tar.gz

2.2 配置环境变量

JDK软件包安装成功后,需要正确配置环境变量才能使用。以root身份编辑/etc/profile文件: 

[root@centos ~]# vi /etc/profile
在文件末尾添加以下内容并保存:
export JAVA_HOME=/data/jdk1.7.0_25
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

编辑/etc/profile文件后,环境变量需要在下次登录Linux时才生效,如需在当前登录中生效,执行以下命令: 

[root@centos ~]# source /etc/profile 

强烈建议把环境变量配置在/etc/profile中,这样,所有用户都能共享JDK环境变量,而不需要为每个用户单独配置。

检查环境变量是否配置成功,执行以下命令: 

[root@centos ~]# java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

如果看到以上显示结果,说明环境变量配置成功。

配置操作系统环境

为使系统正确运行,需要配置必要的操作系统环境,本系统使用默认系统环境。

安装jboss平台

jboss是开源的应用服务器软件,可以从官网免费获取。本文以jboss-as-7.1.1.Final版本为例进行说明。

4.1 安装jboss-as-7.1.1.Final

上传jboss的安装包jboss-as-7.1.1.Final.zip/usr/local目录,然后解压缩安装包解压缩完成后,将自动在/usr/local目录下创建jboss-as-7.1.1.Final目录,无需执行其它操作,重命名为jboss

mv jboss-as-7.1.1.Final jboss

jboss-as-7.1.1.Final就安装完成了,下文将介绍启动和停止jboss的方法

4.2 配置jboss

进入jbossl目录,看一下该目录的结构:

[root @centos opt]$ cd jboss
[root @centos jboss-as-7.1.1.Final]$ ls -l
total 336
drwxr-xr-x.  3 jboss jboss   4096 Mar 10  2012 appclient
drwxr-xr-x.  4 jboss jboss   4096 Mar 10  2012 bin
drwxr-xr-x.  4 jboss jboss   4096 Mar 10  2012 bundles
-rw-r--r--.  1 jboss jboss   2451 Mar 10  2012 copyright.txt
drwxr-xr-x.  4 jboss jboss   4096 Mar 10  2012 docs
drwxr-xr-x.  5 jboss jboss   4096 Mar 10  2012 domain
-rw-r--r--.  1 jboss jboss 266549 Mar 10  2012 jboss-modules.jar
-rw-r--r--.  1 jboss jboss  26530 Mar 10  2012 LICENSE.txt
drwxr-xr-x. 13 jboss jboss   4096 Mar 10  2012 modules
-rw-r--r--.  1 jboss jboss   2421 Mar 10  2012 README.txt
drwxr-xr-x.  6 jboss jboss   4096 Mar 10  2012 standalone
drwxr-xr-x.  2 jboss jboss   4096 Mar 10  2012 welcome-content

其中有一些重要的目录和文件,下面将说明之。

 bin/standalone.conf

该文件是jboss的启动参数文件,描述了jboss启动时的环境设置。系统运行前,需要修改该文件的以下配置:

1. 添加以下一行:

MAX_FD=4096 

该配置描述了jboss在运行时,最大可以打开的文件描述符(File Descriptor, FD)数量,由于系统运行时,需要打开的文件描述符数量超过了jboss的默认最大值1024,因此需要添加上述一行。

2. 修改JVM启动参数:

JAVA_OPTS="-Xms512m �CXmx1024m -XX:MaxPermSize=256m …"

解释一下以上参数的作用:

-Xms512m,该参数描述了JVM启动时分配的堆内存大小;

-Xmx1024m,该参数描述了JVM运行时可以分配的最大堆内存大小;

-XX:MaxPermSize=256m,该参数描述了JVM运行时分配的永久代大小。

上述参数需要根据实际环境进行调整,主要的考虑因素是运行jboss的计算机的物理内存大小和运行在jboss上的应用系统。一般来说-Xms-Xmx应尽可能大一些,但不能超过物理内存总量,-XX:MaxPermSize调整为512M或更大。

3. 修改以下一行:

JAVA_OPTS="$JAVA_OPTS  -Djboss.socket.binding.port-offset=100"

jboss的默认端口是8080,如果想要改变jboss的端口,则需要添加上述配置,-Djboss.socket.binding.port-offset=100的意思是,相对于默认端口(8080)的偏移量是100,即jboss的监听端口是8080 + 100 = 8180

 standalone/configuration/standalone.xml

该文件是jboss运行时环境配置文件。系统运行前需要修改以下配置:

1. 添加以下段落:

<system-properties>
  <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
        <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
        <property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT" value="5000"/>
</system-properties>


该配置的作用是修改http请求能够接受的最大参数(parameter)数量为5000,由于系统运行时需要接受的参数数量超过jboss的默认值,所以需要添加上述配置。

2. 修改以下配置:

<deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" deployment-timeout="1200"/>

其中deployment-timeout="1200"jboss自动部署的超时时间,单位是秒。如果超过超时时间还没有部署成功,则jboss停止部署。默认超时时间是60秒,运行时需要调整这个值以延长超时时间,否则容易出现部署失败的情况。

3. 注释掉一下内容

        <!--subsystem xmlns="urn:jboss:domain:jpa:1.1">

<jpa default-datasource=""/>

</subsystem> --> 

 bin/standalone.sh

该文件是jbossLinux平台下的启动脚本,后文将介绍如何启动和停止jboss

 standalone/deployments/

该目录是jboss的独立部署目录,应用系统的.war文件会放置在该目录下,jboss可以自动部署该目录下的war工程。

 standalone/tmp/vfs/

jboss的临时目录,standalone/deployments/目录下的war工程自动部署时,会解压缩到该目录下的子目录中,子目录名称由jboss自动分配。随着部署次数的增多,standalone/tmp/vfs/目录下的内容也会逐渐增多。为避免磁盘空间不够用,可以在jboss每次启动之前,先删除该目录下的所有内容。

 standalone/tmp/work/

jboss的临时目录,供jboss上部署的应用系统作缓存和其它临时用途。同样,每次启动jboss之前,可以先删除该目录下的所有内容。

4.3 启动和停止jboss

jboss的启动脚本是bin/standalone.sh文件,配置好jboss的相关参数后,可以执行 /usr/local/jboss /bin/standalone.sh 来启动jboss,但不推荐这种方法,因为这样启动的话,一旦启动该脚本的终端退出时,jboss就停止了,并且扩展性不强。我们编写简单的shell脚本来启动jboss,使其可以在后台运行。

/usr/local/bin目录下,创建jboss启动脚本,本文中,创建的脚本文件名为start.sh

 [root @dbserver345 bin]$ vi start.sh

start.sh文件中添加以下内容:

#!/bin/bash
SV1LOG=/data/logs/jboss_start.log
SV1PID=`ps -ef|grep "java"|grep "Final$"|grep -v "grep"|awk '{print $2}'`
JBOSS_HOME="/usr/local/jboss"
start(){
    SV1PID=`ps -ef|grep "java"|grep "Final$"|grep -v "grep"|awk '{print $2}'`
    if [ -z "$SV1PID" ];then
        echo "Starting JBOSS..."
        $JBOSS_HOME/bin/standalone.sh > $SV1LOG 2>&1 &
        sleep 5
        echo -e "Please see $SV1LOG for details"
    else
        echo "JBOSS is already running...!"
        exit 1
    fi
}
 
stop(){
    if [ -z "$SV1PID" ];then
        echo "JBOSS is not running!!"
        exit 1
    else
        echo "Shuting down JBOSS..."
        kill -15 "$SV1PID" > /dev/null 2>&1
    fi
    sleep 5
    SV1CHK=`ps -ef|grep "java"|grep "Final$"|grep -v "grep"|awk '{print $2}'`
    if [ -z "$SV1CHK" ];then
        echo "Shutdown JBOSS successfully!"
    else
        echo "JBOSS is still running,Please try again!"
    fi
}
 
status(){
    if [ -z "$SV1PID" ];then
        echo "JBOSS is not running!!"
        exit 1
    else
        echo -e "JBOSS is listening on\n\n`netstat -antp|grep "$SV1PID" |awk '{print $4}'`"
    fi
}
 
restart(){
    stop
    sleep 5
    start
}
 
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
status)
        status
        ;;
    restart)
        restart
        ;;
    *)
        echo "Usage: `basename $0` {start|stop|status|restart}"
        ;;
esac

最后,给start.sh赋予可执行权限:

[root @centos bin]$ chmod a+x start.sh

简单解释一下这个脚本。首先给3个变量赋值:SV1LOGSV1PIDJBOSS_HOME,分别代表jboss启动日志文件路径、jboss进程IDPID)、jboss主目录,脚本的后续内容基于这3个变量撰写,这3个变量应根据实际情况进行赋值。

该脚本的核心是这个命令:

$JBOSS_HOME/bin/standalone.sh > $SV1LOG 2>&1 &

其效用是,在操作系统后台执行/usr/local/jboss/bin/standalone.sh 这个脚本,并且把jboss的启动日志保存在/data/logs/jboss_start这个文件里面。

使用该脚本的语法如下:

/usr/local/bin/start.sh {start | stop | restart} 

因此我们使用 /usr/local/bin/start.sh start来启动jboss,使用/usr/local/bin/start.sh stop来停止jboss 

总结

本手册描述了如何安装JDKjboss,并详细介绍了jboss的重要配置文件以及如何修改以适用于具体环境。本手册提供给运维人员部署系统时参考。

你可能感兴趣的:(jdk,jboss,环境搭建)