本文詳細介紹了在Linux平臺安裝部署系統的步驟,供運維人員參考。本文的全部範例,創建在如下平臺之上:html
硬件:Intel x86_64平臺,64位CPUjava
操做系統:CentOS 6.4 x86_64 SMP 64位操做系統linux
JDK:SUN JDK 7 Update for Linux 64位shell
從Oracle官網下載JDK的rpm安裝包 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
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-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的方法
進入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
該文件是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以前,能夠先刪除該目錄下的全部內容。
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。
本手冊描述瞭如何安裝JDK、jboss,並詳細介紹了jboss的重要配置文件以及如何修改以適用於具體環境。本手冊提供給運維人員部署系統時參考。