通常情況下我們要配置Tomcat是很容易的一件事情,但是如果您要架設(shè)多用戶多服務(wù)的java虛擬主機(jī)就不那么容易了。其中最大的一個(gè)問題就是Tomcat執(zhí)行權(quán)限。普通方式配置的Tomcat是以root超級(jí)管理員的身份運(yùn)行的,顯然,這是非常危險(xiǎn)的,可想而知,一但網(wǎng)站被掛馬,您的整個(gè)服務(wù)器都可以被黑客控制了。而通過編譯或在線(例如redhat系列的yum, debian系列的apt-get)的方式安裝,一個(gè)服務(wù)器上又只能裝一個(gè)tomcat的服務(wù),如果將多個(gè)網(wǎng)站放到同一個(gè)tomcat服務(wù)中,一但某一個(gè)網(wǎng)站出問題導(dǎo)致tomcat服務(wù)被卡死,則服務(wù)器上所有的網(wǎng)站都打不開了,無法滿足各網(wǎng)站程序獨(dú)享tomcat的需求。為了解決這些問題,我們需要配置Tomcat以指定的身份運(yùn)行,且一臺(tái)服務(wù)器上可以安裝任意多個(gè)tomcat服務(wù)。
VMware Workstation 10 虛擬機(jī)
內(nèi)存:1G
linux版本:CentOS MinimalCD 6.5
JAVA:JAVA_HOME=/opt/jdk
一、先在 Linux系統(tǒng)上配置好JDK環(huán)境(CentOS學(xué)習(xí)筆記--JDK安裝)
假設(shè)您已經(jīng)在Linux系統(tǒng)上正確安裝了JDK開發(fā)環(huán)境,且JDK安裝的位置在: /opt/jdk/
二、下載并解壓最新版本的Tomcat,http://tomcat.apache.org,將其下載下來(我下到的是apache-tomcat-6.0.41.tar.gz)放到Linux系統(tǒng)的/opt/目錄下,運(yùn)行命令解壓(并將解壓出來的目錄更名為tomcat):
tar xzvf apache-tomcat-6.0.41.tar.gzmv apache-tomcat-6.0.41/ tomcat
三、編譯安裝tomcat daemon服務(wù)守候程序:
cd /opt/tomcat/bin/tar xvzf commons-daemon-native.tar.gz1、解壓后會(huì)生成一個(gè)commons-daemon-1.0.15-native-src目錄,cd到這個(gè)目錄的Linux子目錄:cd commons-daemon-1.0.10-native-src/unix2、注釋:安裝gcc(默認(rèn)Mini版本沒有安裝gcc)yum -y install gcc3、執(zhí)行編譯配置./configure #(注意:需要先安裝好make,gcc等編譯工具)./configure --with-java=/opt/jdk 如果提示沒有jdk,使用這個(gè)命令。主要是java目錄未寫入系統(tǒng)目錄4、運(yùn)行完成后會(huì)提示如下信息說明操作成功:...*** All done ***Now you can issue "make"5、執(zhí)行make:make6、執(zhí)行make后會(huì)生成一個(gè)jsvc的文件,將其復(fù)制到tomcat的bin目錄。cp jsvc /opt/tomcat/bin/7、在tomcat/bin目錄里面有一個(gè)daemon.sh 這個(gè)文件就是啟動(dòng)和關(guān)閉tomcat的服務(wù)守候程序。
注意:之前的一些tomcat版本,例如tomcat 6.0.x, 可能沒有這個(gè)文件, 其實(shí)這個(gè)文件就是放在commons-daemon-x.x.x-native-src/unix/samples/Tomcat7.sh這兒的(此目錄還有一個(gè)Tomcat5.sh),只不過新版本的tomcat把它移動(dòng)到了bin目錄下,并取名為daemon.sh了。所以,如果您使用的是tomcat 6,那就把這個(gè)Tomcat7.sh文件復(fù)制到bin目錄下,并取名為daemon.sh即可。
8、修改daemon環(huán)境變量 :
用文本編輯器(vi或emacs等)編輯它,找到類似下面這樣配置段:
test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat# Set JAVA_HOME to working JDK or JRE# JAVA_HOME=/opt/jdk-1.6.0.229、修改TOMCAT_USER=tomcat為您要指定身份運(yùn)行的linux賬號(hào)用戶名,此處指定用戶名為tomcat。
并把JAVA_HOME=...前面的注釋(即“#”號(hào))去掉,并設(shè)置為jdk的安裝目錄路徑,最后,修改好后的配置段變成如下:
test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat# Set JAVA_HOME to working JDK or JREJAVA_HOME=/opt/jdk10、現(xiàn)在修改/opt/tomcat目錄的所有者為tomcat(即您要指定身份運(yùn)行的linux帳號(hào)):useradd -M tomcat #創(chuàng)建沒有主目錄的tomcat用戶chsh tomcat -s /sbin/nologin #禁止tomcat登陸操作,類似于windows的系統(tǒng)賬戶chown -R tomcat /opt/tomcat #將/opt/tomcat下的所有檔案與子目錄進(jìn)行相同的擁有者變更為tomcat用戶11、為tomcat/bin/目錄下的*.sh添加相應(yīng)的x權(quán)限位:chmod +x /opt/tomcat/bin/*.sh12、現(xiàn)在,可以測(cè)試一下daemon是否可以啟動(dòng)運(yùn)行,啟動(dòng)方式如下:/opt/tomcat/bin/daemon.sh start curl http://localhost:8080 #測(cè)試一下是否啟動(dòng)(如果出錯(cuò),重點(diǎn)查驗(yàn)tomcat的bin目錄下的*.sh是否有x可執(zhí)行權(quán)限、linux帳號(hào)是否有tomcat目錄的讀寫權(quán)限,是否有tomcat/logs日志目錄的寫權(quán)限等等。)如無錯(cuò)誤,則tomcat的daemon守候程序已經(jīng)設(shè)置成功了。
13、這時(shí)本機(jī)可以訪問tomcat了,遠(yuǎn)程機(jī)器訪問不了,是防火墻的問題,在 /etc/sysconfig/iptables添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT #8080是tomcat的訪問端口重啟iptableservice iptables restart這樣就可以訪問了。
14、停止tomcat, 對(duì)應(yīng)的命令為:
/opt/tomcat/bin/daemon.sh stop15、添加tomcat為L(zhǎng)inux的服務(wù),這時(shí)就簡(jiǎn)單了,只需要?jiǎng)?chuàng)建一個(gè)軟鏈到/etc/init.d/目錄中即可ln -s /opt/tomcat/bin/daemon.sh /etc/init.d/tomcat16、現(xiàn)在就可以用它啟動(dòng)/關(guān)閉tomcat了:/etc/init.d/tomcat start #啟動(dòng)tomcatservice tomcat start #啟動(dòng)tomcat/etc/init.d/tomcat stop #關(guān)閉tomcatservice tomcat stop #關(guān)閉tomcat17、設(shè)置tomcat服務(wù)開機(jī)啟動(dòng),需要在daemon.sh中增加以下的語句:#!/bin/sh #這句是原文件里有的,下面的2句是要添加的# chkconfig: 2345 90 15# description: Tomcat-en Manager18、再運(yùn)行 chkconfig命令增加tomcat服務(wù),而達(dá)到自啟動(dòng):chkconfig --add tomcat重啟機(jī)器,測(cè)試一下。
四、如果想再創(chuàng)建一個(gè)tomcat服務(wù),只需要將/opt/tomcat這個(gè)目錄復(fù)制一份,例如:
cp /opt/tomcat /opt/tomcat1
再修改一下tomcat1的端口號(hào)(/opt/tomcat/opt/tomcat1/conf/server.xml中的端口號(hào)不能與其它的服務(wù)重復(fù))。最后從上面所述第8步開始,創(chuàng)建另一個(gè)服務(wù)即可。
通過這種方式,您就可以為一臺(tái)Linux服務(wù)器創(chuàng)建任意多個(gè)tomcat服務(wù)了。最后只需要安裝一個(gè)前端服務(wù)器(例如Nginx或Apache),將不同域名的請(qǐng)求轉(zhuǎn)發(fā)到不同的tomcat服務(wù)程序就可以了。
新聞熱點(diǎn)
疑難解答
圖片精選