linux中配置tomcat

來源:互聯網
上載者:User
作業系統:Redhat Linux(Fedora Core 2)
     JDK:      j2sdk-1_4_2_01-linux-i586.bin
     TOMCAT:   jakarta-tomcat-5.0.19.tar.gz
   
     安裝步驟:
   
     JDK:
     1)將安裝程式複製到 /usr/local目錄下
   
     2)執行命令:
   
        ./j2sdk-1_4_2_01-linux-i586.bin
   
        解壓後得到目錄j2sdk-1.4.2_01,將目錄名改為j2sdk-1.4.2,不然後面的操作會無效。
   
     3)依次執行下列命令:
   
        ln -s j2sdk-1.4.2 jdk
        ln -s jdk/jre jre
   
     4)設定環境變數
   
        vi /etc/profile
  
        加入如下內容:
   
        JAVA_HOME=/usr/local/jdk
        export JAVA_HOME
        CLASSPATH=/usr/local/jdk/lib:/usr/local/jre/lib
        export CLASSPATH
        PATH=$PATH:/usr/local/jdk/bin:/usr/local/jre/bin
   
     5)測試JDK是否安裝成功
   
        cd /etc
        javac
   
        如果出現關於javac的使用說明,表示安裝成功。   
   
     TOMCAT:
     1)將安裝程式複製到 /usr/local目錄下
  
     2)執行命令:
   
        tar -zxvf jakarta-tomcat-5.0.19.tar.gz
   
        解壓後得到目錄jakarta-tomcat-5.0.19
   
     3)設定環境變數
  
        vi /etc/profile
  
        加入如下內容:
  
        TOMCAT_HOME=foo/tomcat
        export TOMCAT_HOME
  
     4)進入 /usr/local/jakarta-tomcat-5.0.19/bin,執行:
  
        ./startup.sh start
   
        啟動tomcat伺服器
  
     5)測試是否安裝成功
  
        用瀏覽器瀏覽http://localhost:8080
   

        如果出現tomcat的歡迎頁面,表示安裝成功。

 

 

 

我假設你使用Debian3,如果你使用其他的Linux版,可能會有安裝方法和設定路徑上的區別。

1,安裝J2SDK 1.1 使用Debian源裡的安裝包

以root 身份運行apt-get install sun-j2sdk1.4,這樣將安裝sun的j2sdk1.4。然後輸入java如果你看到的不是command not found,就表示你已經安裝正確了。否則搜尋是否有java和javac兩個檔案,我的在/usr/lib/j2sdk1.4-sun/bin下,如果 有就建立連結到/usr/bin下,串連名與原檔案名稱一樣。

1.2 使用sun網站上的安裝包

具體方法參考sun網站上的安裝說明。也可以參考我的做法(圖形介面操作):

下載正確的壓縮包後解壓,一般得到類似名為jdk1.x.x的檔案夾。將整個檔案夾移動到/usr/lib目錄下,然後進入 jdk.1.x.x/bin下的java, javac, javadoc, jar四個可執行檔建立連結,然後複製到/usr/bin檔案夾下,並且改名為與原檔案相同。這樣做的原因是一般/usr/bin是$PATH環境變數 的一部分,以後你想運行javac命令編繹一個.java源檔案時,只需要輸入javac filename就行了,而不需要輸入javac檔案所在的完整路徑。

JAVA_HOME環境變數可以不設定,因為據我的使用經驗,java,javac等jdk的程式知道在哪裡找到自己的家。當某個程式需要JAVA_HOME環境變數,我們再在它的啟動指令碼中設定。因為使用JAVA_HOME環境變數的程式很少。

2,安裝Tomcat 從http://tomcat.apache.org/網站上下載tomcat for Linux。網站上有不同版本的源碼包和二進位包等,而二進位包又有core,deployer,embedded三種。我使用tomcat5.28二進位包中的core。

下載jakarta-tomcat-5.0.28.tar.gz解壓,將得到jakarta-tomcat-5.0.28檔案夾,我把它改名為tomcat5,把它拷貝到你喜歡的地方。我放在/usr/share/下。

2.1 試運行tomcat

在終端中輸入/usr/share/tomcat5/bin/startup.sh,將啟動tomcat。然後你在瀏覽器中輸入http://localhost:8080或者http://127.0.0.1:8080你就看到tomcat產生的頁面了。

運行/usr/share/tomcat5/bin/startup.sh出錯?試運行:

JAVA_HOME=/usr/lib/j2sdk1.4_sun #這裡的路徑是你的j2sdk的安裝路徑export JAVA_HOME/usr/share/tomcat5/bin/startup.sh2.2 將tomcat設定為開機啟動 有兩個方法,1是使用tomcat內建的啟動指令碼啟動,2是使用jsvc將tomcat啟動為Linux的一個進程。

2.2.1

建立一個指令碼命名為tomcat5.sh,內容為:

#!/bin/sh#file:tomcat5.sh#設定環境變數,如果無法啟動就將注釋去掉#JAVA_HOME=/usr/lib /j2sdk1.4-sun#CATALINA_HOME=/usr/share/tomcat5#CLASSPATH=\#$JAVA_HOME/lib/tools.jar:\#$CATALINA_HOME/bin/commons-daemon.jar:\#$CATALINA_HOME/bin/bootstrap.jarcase "$1" in start) echo "Starting tomcat5..." /usr/tomcat5/bin/startup.sh ;; stop) echo "Stopping tomcat5..." /usr/tomcat5/bin/shutdown.sh ;; *) echo "Usage tomcat.sh start/stop" exit 1;;esac#tomcat5.sh end將tomcat5.sh 拷貝到/etc/init.d下面。然後運行/usr/bin/ksysv運行圖形介面的開機啟動設定工具。將Available Services欄裡的tomcat5.sh拖到Runlever 2 Start,Runlever 3 Start,Runlever 4 Start,Runlever 5 Start,Runlever 6 Start,Runlever 0 Stop,Runlever 1 Stop,Runlever 6 Stop,你可能需要注意表徵圖的位置,我將表徵圖拖到每一欄的啟動項目標號是90的位置。

或者你在終端裡運行:

ln -s /etc/init.d/tomcat5.sh /etc/rc0.d/K90tomcat5.shln -s /etc/init.d/tomcat5.sh /etc/rc1.d/K90tomcat5.shln -s /etc/init.d/tomcat5.sh /etc/rc2.d/S90tomcat5.shln -s /etc/init.d/tomcat5.sh /etc/rc3.d/S90tomcat5.shln -s /etc/init.d/tomcat5.sh /etc/rc4.d/S90tomcat5.shln -s /etc/init.d/tomcat5.sh /etc/rc5.d/S90tomcat5.shln -s /etc/init.d/tomcat5.sh /etc/rc6.d/K95tomcat5.sh重啟機器看tomcat是否可以自動啟動了。

2.2.2

方法2.2.1有一個嚴重的問題,那就是tomcat具有root許可權。我意味著你的任何一個jsp指令碼都具有root許可權,所以可以輕易地用jsp指令碼刪除你整個硬碟裡的東西!所以我們最好不要使用2.2.1方法。

我們下載的jakarta-tomcat-5.0.28.tar.gz帶有fsvc工具,在壓縮包裡的jakarta-tomcat- 5.0.28/bin/fsvc.tar.gz,如果你按上面的步驟做了,它就在 /usr/share/tomcat5/bin/fsvc.tar.gz,將其解壓,得到/usr/share/tomcat5/bin/fsvc- src檔案夾。在終端運行:

/usr/share/tomcat5/bin/fsvc-src/configure --with-java=/usr/lib/j2sdk1.4-sun

make

得到/usr/share/tomcat5/bin/fsvc-src/fsvc檔案。將/usr/share/tomcat5/bin /fsvc- src/native/tomcat5.sh指令檔拷貝到/etc/init.d下,再使用2.2.1中的的半部分方法將tomcat設定為自啟動。

/etc/init.d/tomcat5.sh還需要修改,使其看起來像:

JAVA_HOME=/usr/lib/j2sdk1.4-sunCATALINA_HOME=/usr/share/tomcat5DAEMON_HOME=/usr/share/tomcat5TOMCAT_USER=tomcat5 #這裡改為一個普通身份的使用者名稱TMP_DIR=/var/tmpCATALINA_OPTS=CLASSPATH=\$JAVA_HOME/lib /tools.jar:\$CATALINA_HOME/bin/commons-daemon.jar:\$CATALINA_HOME/bin/bootstrap.jarcase "$1" in start) # # Start Tomcat # $DAEMON_HOME/bin/jsvc-src/jsvc \......先不要重啟實驗,請手動運行/etc/init.d/tomcat5.sh start,然後在瀏覽器中輸入http://localhost:8080或者http://127.0.0.1:8080看tomcat是否能夠啟 動,再運行/etc/init.d/tomcat5.sh stop看是否能停止。

問題:無法用fsvc啟動tomcat?

在http://jakarta.apache.org/commons/daemon/faq.html有 說明。如果你使用Debian,運行 modconf然後將/kernel/security下的capability模組安裝上。如果你使用其它的版本,並且把capability編繹為模 塊,請在/etc/init.d/tomcat5.sh的合適位置(你想使用第2行?)加上modprobe capability。

3,設定tomcat的server.xml布署網站 如果你想讓別人在瀏覽器中輸入你的IP而不需要在IP後面加上“:連接埠號碼”就能訪問你的網站的話,請將

<connector port="8080" maxthreads="150" minsparethreads="25" maxsparethreads="75" enablelookups="false" redirectport="8443" acceptcount="100" debug="0" connectiontimeout="20000" disableuploadtimeout="true"></connector>中的port="8080"改為 port="80",因為80是瀏覽器請求的預設連接埠。找到

<host name="localhost" debug="0" appbase="webapps" unpackwars="true" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"></host>修改為使appBase="/home/tomcatweb"。 並在其後面加上:

<context path="" docbase="/home/tomcatweb" crosscontext="false" debug="0" reloadable="true"></context>把你自己的index.jsp放在/home/tomcatweb目錄下, 然後在瀏覽器中輸入http://127.0.0.1,你應該就能看到index.jsp的運行結果了。

4,中文問題 tomcat並沒有特殊的中文問題。而且大部分情況下的中文問題是因為使用者根本就不會寫JSP代碼,甚至不會寫HTML代碼。

4.1 簡單HTML檔案的亂碼問題

一個HTML檔案,裡麵包含有?形奈淖鄭紓?

<html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /></head>你好。</html>上面的標籤告訴瀏覽器你的HTML檔案使用的是UTF-8編碼格式。請將UTF- 8正確地設定為你的文字編輯器儲存時的編碼,否則,只有全英文HTML源碼檔案才能保證不出現亂碼。

4.2 簡單的JSP檔案的亂碼問題

一個JSP檔案,裡麵包含有中文文字,如:

<%@ page contentType="text/html; charset=UTF-8" %><html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /></head><% out.println("你好。");%></html><%@ page contentType="text/html; charset=UTF-8" %>標籤告訴tomcat和java編繹器你的檔案的編碼是UTF-8格式的。

4.3 被包含的檔案的內容是亂碼

如果你的parent.jsp檔案中使用<jsp:include page="child.jsp" >檔案包含了child.jsp,請在parent.jsp和child.jsp檔案中都指定了正確的<%@ page contentType="text/html; charset=UTF-8" %>(改UTF-8為正確的編碼),兩者可以不一樣。</jsp:include>

如果你的parent.jsp檔案中使用<%@ include file="child.jsp" %>檔案包含了child.jsp,請保證parent.jsp和child.jsp是相同的編碼,並且在parent.jsp中設定了正確的 <%@ page contentType="text/html; charset=UTF-8" %>(改UTF-8為正確的編碼)。不要在child.jsp中設定<%@ page contentType="text/html; charset=UTF-8" %>,否則,tomcat會出錯(不總是)。

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.