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