在開發(fā)過程中盾致,我們經(jīng)常采用ide進(jìn)行java項(xiàng)目的開發(fā)和自動(dòng)部署奢赂。但在服務(wù)器上排霉,我們不得不通過手工的方式進(jìn)行部署我們的應(yīng)用偏竟。通過以下幾步完成手動(dòng)部署tomcat應(yīng)用:
下載tomcat
首先下載Tomcat 7煮落,下載后將其解壓到某個(gè)目錄下:
? apache-tomcat-7.0.54 pwd
/home/popkit/software/apache-tomcat-7.0.54
? apache-tomcat-7.0.54 ls
bin conf lib LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt temp webapps work
? apache-tomcat-7.0.54
設(shè)置環(huán)境變量
下載解壓后,我們要設(shè)置兩個(gè)環(huán)境變量(在.zshrc或者.bashrc里添加以下兩行):CATALINA_HOME和CATALINA_BASE踊谋,我這里將他們?cè)O(shè)置成一樣的:
export CATALINA_HOME=/home/popkit/software/apache-tomcat-7.0.54
export CATALINA_BASE=$CATALINA_HOME
基本配置
修改$CATALINA_HOME/conf/server.xml蝉仇,找到host對(duì)應(yīng)的那項(xiàng),修改為如下:
<Host name="localhost" appBase="webapps"
unpackWARs="false" autoDeploy="false" deployXML="false"
xmlValidation="false" xmlNamespaceAware="false">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
注意上面幾個(gè)參數(shù)(參數(shù)說明可以參考官網(wǎng)的doc):
- appBase 是應(yīng)用的根目錄,可設(shè)置為絕對(duì)目錄轿衔,也可設(shè)置為相對(duì)目錄沉迹。這里的相對(duì)目錄是相對(duì)于$CATALINA_HOME的,如果沒有設(shè)置默認(rèn)的appBase值為webapps害驹。
- unpackWARs 如果你想將appBase目錄下的war包文件解壓成可查看的目錄格式胚股,將這個(gè)值設(shè)置為true。注意:在appBase外的war包不會(huì)被解壓裙秋。
- autoDeploy 當(dāng)tomcat運(yùn)行過程中,這個(gè)值設(shè)置用來是否定期地去檢查新的應(yīng)用或更新應(yīng)用缨伊。如果設(shè)置為true摘刑,tomcat會(huì)定期地去檢查appBase和xmlBase目錄,并部署新的應(yīng)用刻坊。同時(shí)枷恕,當(dāng)xml描述文件修改時(shí)也會(huì)觸發(fā)tomcat重新reload應(yīng)用。默認(rèn)值為true谭胚。最好徐块,這里將其設(shè)置為false,因?yàn)槟阆M謩?dòng)部署它灾而。
- xmlBase 基于這個(gè)host的xml配置的根目錄胡控,這個(gè)目錄包含了要部署該host的XML描述文件∨蕴耍可設(shè)置為絕對(duì)目錄昼激,也可設(shè)置為相對(duì)目錄(相對(duì)目錄是相對(duì)于$CATALINA_BASE)。如果沒有設(shè)置锡搜,默認(rèn)目錄為:conf/<engine_name>/<host_name>橙困,如下conf/Catalina/localhost
? apache-tomcat-7.0.54 pwd
/home/popkit/software/apache-tomcat-7.0.54
? apache-tomcat-7.0.54 ls conf/Catalina/localhost
ROOT.xml
- copyXML 如果你希望,在應(yīng)用部署后耕餐,將應(yīng)用中的context xml描述文件(/META-INF/context.xml)拷貝到xmlBase目錄下凡傅,將這個(gè)參數(shù)設(shè)置為true。默認(rèn)值為false肠缔。
- deployXML 如果你不希望解析應(yīng)用中的xml上下文描述文件(在應(yīng)用的 /META-INF/context.xml)夏跷,將這個(gè)值設(shè)置為false。從安全的角度來考慮明未,你也應(yīng)該將其設(shè)置為false拓春。默認(rèn)值為true。
打包部署
修改完成上面的server.xml后亚隅,在如下目錄添加ROOT.xml
/home/popkit/software/apache-tomcat-7.0.54/conf/Catalina/localhost/
我的ROOT.xml文件內(nèi)容如下:
<Context docBase="/home/popkit/pelpa/pelpa-web/target/pelpa" path="/" />
注意硼莽,我打的war包目錄為/home/popkit/pelpa/pelpa-web/target/pelpa,根據(jù)自己的情況設(shè)置該值《遥可以通過mvn進(jìn)行打包偏螺,注意打包前最好mvn clean下:
# clean first
mvn clean;
# package war
mvn package -Dmaven.test.skip=ture