歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux文化 >> Linux:安裝Tomcat服務器,開發JSP

Linux:安裝Tomcat服務器,開發JSP

日期:2017/2/27 11:56:45   编辑:Linux文化

我假設你使用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.sh

2.2 將tomcat設置為開機啟動

有兩個方法,1是使用tomcat自帶的啟動腳本啟動,2是使用jsvc將tomcat啟動為Linux的一個進程。

2.2.1 使用Tomcat自帶的啟動腳本

建立一個腳本命名為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.jar

case "$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.sh

ln -s /etc/init.d/tomcat5.sh /etc/rc1.d/K90tomcat5.sh

ln -s /etc/init.d/tomcat5.sh /etc/rc2.d/S90tomcat5.sh

ln -s /etc/init.d/tomcat5.sh /etc/rc3.d/S90tomcat5.sh

ln -s /etc/init.d/tomcat5.sh /etc/rc4.d/S90tomcat5.sh

ln -s /etc/init.d/tomcat5.sh /etc/rc5.d/S90tomcat5.sh

ln -s /etc/init.d/tomcat5.sh /etc/rc6.d/K95tomcat5.sh

重啟機器看tomcat是否可以自動啟動了。

2.2.2 使用jsvc,增加安全性

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

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

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

make

得到/usr/share/tomcat5/bin/jsvc-src/jsvc文件。將/usr/share/tomcat5/bin/jsvc- src/native/tomcat5.sh腳本文件拷貝到/etc/init.d下,再使用2.2.1中的的半部分方法將tomcat設置為自啟動。

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

JAVA_HOME=/usr/lib/j2sdk1.4-sun

CATALINA_HOME=/usr/share/tomcat5

DAEMON_HOME=/usr/share/tomcat5

TOMCAT_USER=tomcat5 #這裡改為一個普通身份的用戶名

TMP_DIR=/var/tmp

CATALINA_OPTS=

CLASSPATH=\

$JAVA_HOME/lib/tools.jar:\

$CATALINA_HOME/bin/commons-daemon.jar:\

$CATALINA_HOME/bin/bootstrap.jar

case "$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看是否能停止。

問題:無法用jsvc啟動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後面加上“:端口號”就能訪問你的網站的話,請將。

中的port="8080"改為port="80",因為80是浏覽器請求的默認端口。找到

修改為使appBase="/home/tomcatweb"

並在其後面加上:

英文代碼

把你自己的index.jsp放在/home/tomcatweb目錄下,然後在浏覽器中輸入http://127.0.0.1,你應該就能看到index.jsp的運行結果了。

4,中文問題

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

4.1 簡單HTML文件的亂碼問題

一個HTML文件,裡面包含有中文文字,如:

你好。

上面的標簽告訴浏覽器你的HTML文件使用的是UTF-8編碼格式。請將UTF-8正確地設置為你的文本編輯器保存時的編碼,否則,只有全英文HTML源碼文件才能保證不出現亂碼。

4.2 簡單的JSP文件的亂碼問題

一個JSP文件,裡面包含有中文文字,如:

標簽告訴tomcat和java編繹器你的文件的編碼是UTF-8格式的。

4.3 被包含的文件的內容是亂碼

如果你的parent.jsp文件中使用 文件包含了child.jsp, 請在parent.jsp和child.jsp文件中都指定了正確的 (改UTF-8為正確的編碼),兩者可以不一樣。

如果你的parent.jsp文件中使用 文件包含了child.jsp, 請保證parent.jsp和child.jsp是相同的編碼, 並且在parent.jsp中設置了正確的 (改UTF-8為正確的編碼)。 不要在child.jsp中設置 , 否則,tomcat會出錯(不總是)。

4.4 POST方法的亂碼

在request.getParameter();之前運行request.setCharacterEncoding("UTF-8");,其中UTF-8是你的jsp文件編碼。

4.5 使用javaIO讀取的文件是亂碼

請重寫你的函數,而不是試圖更改tomcat的設置。

原文鏈接:http://www.ideawu.net/tomcatinstall.html

Copyright © Linux教程網 All Rights Reserved