心的方向

          新的征途......
          posts - 75,comments - 19,trackbacks - 0

          Debian3下配置JSP開發環境

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

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

          方法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-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看是否能停止。

          問題:無法用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會出錯(不總是)。

          posted on 2007-03-31 11:50 阿偉 閱讀(411) 評論(0)  編輯  收藏 所屬分類: Linux
          主站蜘蛛池模板: 莱芜市| 乌鲁木齐县| 攀枝花市| 嫩江县| 拉萨市| 昂仁县| 民丰县| 类乌齐县| 文安县| 正宁县| 屏山县| 南通市| 沙田区| 武平县| 论坛| 固始县| 新宾| 九江市| 道孚县| 北京市| 洮南市| 稻城县| 石嘴山市| 乌兰察布市| 南溪县| 宜兰市| 柳河县| 湘潭县| 吴川市| 宕昌县| 蓝田县| 台东县| 玉门市| 泽州县| 碌曲县| 绿春县| 和平县| 蓝山县| 巴彦淖尔市| 承德市| 比如县|