---- JSP是一種較為常用的動態網頁製作技術,但Apache本身只支援靜態網頁,因此需要與其他特定的應用服務結合使用。本文要介紹的是一種將Apache與Tomcat服務相結合來支援JSP動態網頁的最新實用技術,即用"apache/jk"方式支援JSP動態網頁。
---- 起初,Apache與Tomcat結合支援JSP動態網頁是通過一個名為"mod_jserv" 的外掛程式來實現的。採用這種Apache/Jserv方式配置參數十分複雜,運行效率很低,而且對SSL(一種加密傳輸方式)的支援也不理想,因此Jakarta工作群組新近開發了"mod_jk"外掛程式,它很好地彌補了mod_jserv的缺點,而且能支援Apache以外的多種Web服務。
---- 關於這種Apache/Jk方式的實現原理,大家可到網站上閱讀有關資料,本文只簡單介紹其實現的方法,對原理部分不做討論。
---- 一、在Unix平台上安裝
---- 本文以最常用的Solaris作業系統為例進行說明。
---- (一)應用環境
---- 在此,我們選用的作業系統為Solaris 2.7,而應用環境為Java 1.2(假定安裝在/usr/java1.2目錄下)、perl 5.005(假定安裝在/usr/local/bin目錄下)和gzip(假定安裝在/usr/local/bin目錄下)。
---- (二)軟體包的下載、編譯與安裝
---- 1.
---- 在可下載最新的Apache原始碼軟體包apache_1.3.19.tar.gz。
---- 在可下載Tomcat原始碼軟體包jakarta-tomcat-3.2.1-src.tar.gz。
---- 在可下載已編譯的Tomcat應用軟體包jakarta-tomcat-3.2.1.tar.gz。
---- 2.編譯與安裝
---- 假設各軟體包已下載到當前的某個工作目錄(如: /home/tmp)下,Apache和Tomcat將安裝在/home目錄下。在目前的目錄我們可以進行如下操作。
(1)編譯和安裝Apache 應用服務
①解包
$ /usr/local/bin/gzip -dc ./ apache_1.3.19.tar.gz | tar xf -
②編譯
$ cd apache_1.3.19
$ ./configure --prefix=/home/apache-1.3.19
--with-perl=/usr/local/bin/perl --enable-module=so
假設perl的解釋命令安裝在/usr/local/bin 目錄下,
Apache服務安裝在/home/apache-1.3.19 目錄下。
$ make
③安裝
$ su
# make install
(2)編譯與安裝mod_jk外掛程式
①解包
$ /usr/local/bin/gzip-dc jakarta-tomcat-3.2.1-src.tar.gz|tar xf-
②編譯
$ cd jakarta-tomcat-3.2.1-src/src/native/apache1.3
$ /home/apache-1.3.19/bin/apxs -o mod_jk.so -DSOLARIS -I../jk -I/
usr/java1.2/include-I/usr/java1.2/include/
solaris -lposix4 -c *.c ../jk/*.c
假定Java安裝在/usr/java1.2目錄下。
③安裝
$ su
# /home/apache-1.3.19/bin/apxs -i -a -n jk mod_jk.so
當螢幕顯示如下內容時,表示安裝成功。
cp mod_jk.so /home/apache-1.3.19/libexec/mod_jk.so
chmod 755 /home/apache-
1.3.19/libexec/mod_jk.so
[activating module `jk in /home/apache-1.3.19/conf/httpd.conf]
(3)安裝Tomcat服務
用超級使用者身份把已編譯的Tomcat 3.2.1解包到/home目錄下即可。
$ su
# /usr/local/bin/gzip -dc jakarta-tomcat-3.2.1.tar.gz|
(cd /home;tar xf -)
3.參數配置
(1)配置Apache服務
用vi命令開啟Apache的設定檔httpd.conf。
# cd /home/apache-1.3.19/conf
# vi httpd.conf
在末尾添加以下內容。
JkWorkersFile /home/jakarta-tomcat-3.2.1/conf/workers.properties
JkLogFile /home/apache-1.3.19/logs/mod_jk.log
注意: 記錄檔可根據具體情況調整。
JkLogLevel warn
JkMount /*.jsp ajp13
JkMount /servlet/*.jsp ajp13
注意: 關於該設定檔中其他重要的、但與Tomcat無關
的參數(如Port和DocumentRoot等),可參見Apache的文檔資料,本文不涉及。
(2)配置Tomcat服務
首先,修改server.xml檔案。
這裡假定存放Apache的Web網頁的根目錄為/home/htdocs。
# cd /home/jakarta-tomcat-3.2.1/conf
# vi server.xml
然後,在Connectors部分嵌入如下內容。
< Connector className="org.apache.tomcat.service.
PoolTcpConnector"> < Parameter name="handler"
value="org.apache.tomcat.service.connector.Ajp
13ConnectionHandler"/>
< Parameter name="port" value="8009"/>
< /Connector>
接著,在 Special Webapps 部分嵌入如下內容。
< Context path=" "
docBase="/home/htdocs"
debug="0" >
< /Context>
進一步修改workers.properties檔案。
# vi workers.properties
...
workers.tomcat_home=/home/jakarta-tomcat-3.2.1
...
workers.java_home=/usr/java1.2
...
ps=/
...
隨後,修改Tomcat 啟動和關閉命令檔案。
# cd ../bin
# vi startup.sh
再在"BASEDIR=`dirname $0` "語句前嵌入如下內容。
PATH=/usr/java1.2/bin:$PATH:.
JAVA_HOME=/usr/java1.2
TOMCAT_HOME=/home/jakarta-tomcat-3.2.1
export PATH JAVA_HOME TOMCAT_HOME
# vi shutdown.sh
最後,在"BASEDIR=`dirname $0` "語句前嵌入如下內容。
PATH=/usr/java1.2/bin:$PATH:.
JAVA_HOME=/usr/java1.2
TOMCAT_HOME=/home/jakarta-tomcat-3.2.1
export PATH JAVA_HOME TOMCAT_HOME
4.測試
分別啟動Apache和Tomcat。
# /home/apache-1.3.19/bin/apachectl start
# /home/jakarta-tomcat-3.2.1/bin/startup.sh
然後,編輯簡單的.jsp測試檔案。
# vi /home/apache/-1.3.19/htdocs/test.jsp
< html>
< head>
< title> This is a jsp test file!
< /title>
< /head>
< body>
< % out.print("This is a jsp test file!n"); %>
< /body>
< /html>
最後,進行網頁瀏覽。
---- 開啟瀏覽器,訪問該.jsp檔案: http://主機名稱(或IP地址)/test.jsp。若螢幕顯示如附圖所示的內容,表示運行正常,此時,可以正常運行JSP動態網頁檔案了。
二、在Windows NT/2000平台上安裝
---- 本文以Windows 2000平台為例。
---- (一)應用環境
---- 作業系統採用Windows 2000,應用環境為Java 1.2.2(假定已安裝在c:jdk-1.2.2上)和Winzip。
---- (二)軟體包的下載與安裝
---- Windows NT2000上的安裝比較簡單,應用軟體不必重新編譯,只下載網站上已經編譯好的軟體包即可。
---- 1.
---- 在 可下載編譯好的最新Apache軟體包apache_1.3.19-Windows32-no_src-r2.msi。
---- 在 可下載mod_jk.zip。
---- 在可下載jakarta-tomcat-3.2.1.zip。
---- 2. 安裝
---- 首先,雙擊"apache_1.3.19-Windows32-no_src-r2.msi",安裝Apache 服務。
---- 然後,將"mod_jk.zip"解壓縮到Apache服務的"modules"子目錄下;最後,將"jakarta-tomcat-3.2.1.zip"解壓縮到C:目錄下。
---- 3.參數配置
---- (1)修改Apache服務的設定檔httpd.conf
---- 注意: 本文只涉及與Tomcat有關的參數,其餘的參數設定可參考Apache的有關文檔資料。
---- 首先用滑鼠點擊 "開始"*"程式 "*"apache httpd server"*"configure apache server"*"edit configuration"。
---- 然後,在"Dynamic Shared Object (DSO) Support"部分嵌入如下內容。
LoadModule jk_module modules/mod_jk.dll
最後,在檔案尾部添加如下內容。
JkWorkersFile c:jakarta-tomcat-3.2.1confworkers.properties
JkLogFile c:jakarta-tomcat-3.2.1logsmod_jk.log
JkLogLevel warn
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
(2)配置Tomcat服務
---- 對server.xml和workers.properties檔案的參數調整,讀者可參照Unix部分對應的段落。但讀者要注意,對於不同層次的目錄,Unix用"/"分隔,而Windows用""分隔。
---- 分別編輯startup.bat和shutdown.bat檔案,在檔案的第2行嵌入如下內容。
set TOMCAT_HOME=c:jakarta-tomcat-3.2.1
set JAVA_HOME=c:jdk1.2.2
set PATH=C:jdk1.2.2bin;.;%PATH%.
4.測試
參照Unix部分的對應段落進行測試。
---- 本文只對apache/jk方式的配置和使用方法做了簡單介紹,在Tomcat的設定檔(如server.xml)中還有很多參數可根據實際情況進行調整,這裡不多介紹。有興趣的讀者可以參考設定檔中的提示資訊或網站上的有關資料,進行進一步的調整與測試。
---- (閆鵬 作者地址:北京市西城區三裡河路58號國家資訊中心中經網公司,100045)