jboss7.1+jdk環境搭建

1 概述

1.1 概述

本文詳細介紹了在Linux平臺安裝部署系統的步驟,供運維人員參考。本文的全部範例,創建在如下平臺之上:html

硬件:Intel x86_64平臺,64CPUjava

操做系統:CentOS 6.4 x86_64 SMP 64位操做系統linux

JDKSUN JDK 7 Update for Linux 64shell

安裝JDK

2.1 安裝JDK軟件

Oracle官網下載JDKrpm安裝包 jdk-6u35-linux-x64-rpm.bin,上傳至Linux系統的某目錄下(本文以/data目錄爲例)。以root用戶登陸Linux,而後切換到/data目錄,查看上傳的安裝包:apache

[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文件: centos

[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 tomcat

強烈建議把環境變量配置在/etc/profile中,這樣,全部用戶都能共享JDK環境變量,而不須要爲每一個用戶單獨配置。bash

檢查環境變量是否配置成功,執行如下命令: 服務器

[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 –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. 添加如下段落:

<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的重要配置文件以及如何修改以適用於具體環境。本手冊提供給運維人員部署系統時參考。

相關文章
相關標籤/搜索