1概述
1.1 概述
本文详细介绍了在Linux平台安装部署系统的步骤,供运维人员参考。本文的所有范例,建立在以下平台之上:
硬件:Intel x86_64平台,64位CPU
操作系统:CentOS 6.4 x86_64 SMP 64位操作系统
JDK:SUN JDK 7 Update for Linux 64位
2 安装JDK
2.1 安装JDK软件
从Oracle官网下载JDK的rpm安装包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)
如果看到以上显示结果,说明环境变量配置成功。
3 配置操作系统环境
为使系统正确运行,需要配置必要的操作系统环境,本系统使用默认系统环境。
4 安装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
mvjboss-as-7.1.1.Finaljboss
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 –Xmx1024m -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.添加以下段落:
该配置的作用是修改http请求能够接受的最大参数(parameter)数量为5000,由于系统运行时需要接受的参数数量超过jboss的默认值,所以需要添加上述配置。
2.修改以下配置:
其中deployment-timeout="1200"是jboss自动部署的超时时间,单位是秒。如果超过超时时间还没有部署成功,则jboss停止部署。默认超时时间是60秒,运行时需要调整这个值以延长超时时间,否则容易出现部署失败的情况。
3.注释掉一下内容
bin/standalone.sh
该文件是jboss在Linux平台下的启动脚本,后文将介绍如何启动和停止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个变量赋值:SV1LOG、SV1PID、JBOSS_HOME,分别代表jboss启动日志文件路径、jboss进程ID(PID)、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。
5 总结
本手册描述了如何安装JDK、jboss,并详细介绍了jboss的重要配置文件以及如何修改以适用于具体环境。本手册提供给运维人员部署系统时参考。