2004.5 臧士睿 qq:10743383
網路轉載請保留作者聲明,盈利性印刷刊物轉載請聯絡 zself@vip.cc163.com
本文中所有操作都已經在Window2000 Advance Server和Window2000 Professional下測試通過
所有內容:New IIS5.0+Tomcat5.0.x HowTo
專題討論區:http://hh.cc163.com/form/cgi-bin/forums.cgi?forum=4
首頁:http://hh.cc163.com/
目錄
- 序
- 摘要
- 準備工作
- 下載
- Java 2 SDK 1.4.2 (或更高版本)
- Tomcat 5.0.24 (或更高版本)
- Tomcat Web Server 連接器
- 安裝
- Java 2 SDK
- Tomcat 5
- Tomcat JK2 IIS 連接器
- 設定
- Tomcat
- Tomcat IIS 連接器
- Windows
- IIS
- 設定ISAPI篩選器
- 建立ISAPI篩選器使用的虛擬目錄
- 重新啟動IIS服務
- 測試
- Tomcat
- IIS
- 參考文獻
序
最近遇到一個項目,無法避免的需要將IIS和Tomcat協調起來協同工作,同時解析asp和jsp兩種指令碼語言。
查看Tomcat官方HowTo,幾經操作並未成功。查看網上討論,發現中文資料介紹的都是tomcat4.x版本的配置方法,老舊已經不適用。後來對照多篇英文資料,學習、操作之後獲得成功。
鑒於討論此問題的中文資料之匱乏,遂決定將我的配置過程整理,但願對同好者有所協助。
此文章論述內容、書寫格式仿照了http://virtualict.net/support/kb/iis6-Tomcat5-JK2.html,並引用了其中部分文字。
在我配置、翻閱資料的過程當中,感覺到了IIS、Apache Tomcat、JK2等官方文檔對此問題論述的不詳盡,甚至有時候感覺到了被誤導,以至增加瞭解決問題的難度,期待與大家討論。
本人的配置環境
Window2000 Professional+sp4
(Window2000 Advance Server+sp4)
IIS 5.0
j2sdk1.4.2_04
jakarta-tomcat-5.0.24
jakarta-tomcat-connectors-jk2.0.4
配置過程中涉及的路徑如果沒有特殊說明,則都不是系統要求,大家可以修改以適應自己機器的環境。
這裡是另一個自動安裝程式,使用方法本文不做討論
Isapi redirector jk2.02 Installer - Integrating Tomcat with IIS
摘要
這是一篇講述如何安裝、配置Tomcat 5 Java Servlet & JSP服務到微軟IIS 5.0伺服器的文章,這篇文章是本人自己配置過程和經驗的總結,並推薦了一些給過本人極大協助的文檔。
掌握方法的朋友只需要15分鐘就能完成整個配置過程。
準備工作
Microsoft Windows 2000 professional, IIS5 已經安裝並工作正常
需要下載的軟體:
- Java 2 Standard Edition Software Development Kit 1.4.2.04 (或更高版本)
- Jakarta Tomcat 5.0 (或更高版本)
- jakarta Tomcat Connectors-JK2.0.4(或更高版本)
下載
由於版本更新的問題,這裡沒有給出軟體的準確,但根據下面的連結使用者可以很容易找到所需軟體的確切地址。
Java 2 SDK 1.4.2 (或更高版本)
來自 java.sun.com/downloads/ 選擇 the J2SE 1.4.2 (或更高版本) All platforms
然後按照提示進入檔案清單頁面,下載檔案
Tomcat 5.0.24 (或更高版本)
來自Apache Jakarta的for Win的編譯版本。Tomcat 5.x 應該在頁面的底部。寫此文章的時候Tomcat已經發布了5.0.25版,不過配置過程是一樣的。
選擇 5.0.24 可執行檔 (或更高版本)
Tomcat Web Server 連接器
同樣在Apache Jakarta下載頁面。Tomcat Web Server 連接器就在Tomcat 5.0.24連結的下面
選擇 JK2 編譯版本
選擇 win32, 然後選擇下載jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip
注意 這個目錄列表顯示的檔案名稱被截斷,所以你需要觀察瀏覽器狀態列中的提示,確認你準備下載的檔案應該是以"...iis.zip"為結尾的
安裝
建議大家把下載的檔案放在同一個檔案夾裡。
Java 2 SDK
運行j2sdk-1_4_2_04-windows-i586-p.exe 按照提示安裝
可以更改安裝路徑到你習慣的地方
Tomcat 5
運行jakarta-tomcat-5.0.24.exe 按照提示安裝.
如果要改變安裝路徑,可以在這個步驟操作。
可以更改至其它路徑,如 C:/Tomcat 5.0
設定密碼,妥善保管密碼,不推薦空密碼。
這個步驟是選擇本地機器的jdk路徑,一般情況下,安裝檔案會自動搜尋並顯示,如果沒有正確顯示,也可以手動更改。
成功安裝後,程式會提示啟動tomcat並查看readme文檔。
注意: 啟動Tomcat之前要確定系統沒有其它服務已經佔用8080連接埠(Tomcat預設連接埠)和8009連接埠( Tomcat's AJP13 連接器連接埠)
Tomcat正常啟動後會在系統欄載入表徵圖
在表徵圖上右鍵滑鼠可以看到一些設定項目
點擊Configure...看到如下顯示,選擇Startup type為automatic自動啟動。
Tomcat JK2 IIS 連接器
解壓縮jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip得到如下檔案夾
進入/bin/後可見
剪下/複製isapi_redirector2.dll 檔案到Tomcat's bin/目錄中
建立目錄win32/i386/ 並粘貼isapi_redirector2.dll。
記住這個路徑,稍後配置IIS的時候還會用到。這個路徑不是系統要求的,可改變!
現在可以刪除jakarta-tomcat-connectors-jk2.0.4-win32-IIS目錄,這裡面的檔案已經沒用了。實際上在jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip中我們只用到了isapi_redirector2.dll一個檔案
設定Tomcat
進入 Tomcat's conf/ 檔案夾.
要支援 JK2 連接器, 你可能需要修改jk2.properties檔案. 大多數情況下保留此檔案的預設狀態即可,本人的多次配置過程都沒有修改過這個檔案。
## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED## WHEN YOU EDIT THE FILE.## COMMENTS WILL BE _LOST_## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.# Set the desired handler list# handler.list=apr,request,channelJni## Override the default port for the socketChannel# channelSocket.port=8019# Default: # channelUnix.file=${jkHome}/work/jk2.socket# Just to check if the the config is working# shm.file=${jkHome}/work/jk2.shm# In order to enable jni use any channelJni directive# channelJni.disabled = 0# And one of the following directives:# apr.jniModeSo=/opt/apache2/modules/mod_jk2.so# If set to inprocess the mod_jk2 will Register natives itself# This will enable the starting of the Tomcat from mod_jk2# apr.jniModeSo=inprocess
現在輪到workers2.properties,這個檔案需要自己建立,內容如下(附件中有一個copy)
紅色的這行要注意了,把"C:/Tomcat 5.0/work/"這個路徑修改成你自己的路徑,而jk2.shm這個檔案不用擔心,它現在不存在也沒有關係,它會在需要的時候自動被建立。
[shm:]info=Shared memory file. Required for multiprocess serversfile=C:/Tomcat 5.0/work/jk2.shmsize=1000000[channel.socket:localhost:8009]info=Ajp13 worker, connects to tomcat instance using AJP 1.3 protocoltomcatId=localhost:8009[uri:/jsp-examples/*]info=JSP examples, map requests for all JSP pages to Tomcat.context=/jsp-examples[uri:/servlets-examples/*]info=Servlet examples, map requests for all servlets to Tomcat.context=/servlets-examples
看過網上的討論,有些朋友配置過程中的問題就出現在這裡,所以多講幾句:
這個檔案中指定瞭解析jsp的目錄,也就是"http://xxxxx/dir/aa.jsp"這個url中的"dir",比如我們的網站中要增加/dir/這個路徑,並使這個路徑下面的jsp能夠被解析,那你就需要在workers2.properties檔案中增加這樣一段話
[uri:/dir/*]
info=JSP examples, map requests for all JSP pages to Tomcat.
context=/dir
並且在Tomcat的工作目錄中建立"/dir/"這個目錄。比如我們到現在為止,Tomcat的工作目錄是預設的"/ROOT/",那我們就需要在"/ROOT/"路徑下建立"/dir/"目錄,並放置aa.jsp檔案。重起服務之後,我們才能用"http://xxxxx/dir/aa.jsp"這樣的url來訪問aa.jsp檔案。
過去有的朋友誤以為"dir"是IIS工作目錄中的路徑,運行時無法顯示頁面,或者jsp代碼沒有解析,其實就是這個路徑設定的問題。
值得注意的是如果IIS和Tomcat的工作目錄同時存在"/dir/",那麼伺服器會把此路徑串連至Tomcat處理。
當你的Tomcat和IIS一起正常工作後,你可以隨時修改這個檔案以增加新的目錄來支援jsp的運行。
這裡是關於worker2.properties這個檔案更多的規則。
右鍵系統欄中的Tomcat服務表徵圖,選擇"Stop service",關閉服務。
在"管理工具-服務"中找到"Apache Tomcat"服務,並確定它已經啟動。
Tomcat IIS 連接器
你已經放置isapi_redirector2.dll在你的路徑下,本例子中是
C:/Tomcat 5.0/bin/win32/i386
現在需要添加一些必要的註冊資訊到註冊表,redirector被IIS調用時會讀到。建立一個.reg檔案
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Jakarta Isapi Redirector/2.0]
"workersFile"="C://Tomcat 5.0//conf//workers2.properties"
"extensionUri"="/jakarta/isapi_redirector2.dll"
"logLevel"="debug"
"serverRoot"="C://Tomcat 5.0//"
在記事本中寫入上面的文字,並儲存為 reg.reg (附件中有一個copy)
雙擊.reg檔案
成功則顯示如下:
註冊表中可以看到:
現在可以刪除這個.reg檔案了
Windows
添加兩個系統內容變數,他們是CATALINA_HOME和JAVA_HOME.
在案頭上右鍵"我的電腦",選擇"屬性-進階-環境變數"
CATALINA_HOME 指向你的Tomcat安裝目錄,本例子中是 C:/Tomcat 5.0
JAVA_HOME 指向Java SDK安裝目錄,本例子中是 C:/j2sdk1.4.2_04
IIS安裝ISAPI篩選器
進入ISAPI篩選器 介面
點擊 添加 按鈕,鍵入一個新的篩選器名稱,名稱可以隨意起
再點擊 瀏覽 按鈕,選擇isapi_redirector2.dll。本例子中是
C:/Tomcat 5.0/bin/win32/i386/isapi_redirector2.dll
點擊確定。IIS重起之後新的篩選器才會生效,我們先不重起,稍後再做。
點擊確定儲存修改,退出網站屬性對話方塊。
注意Note: 你可以選擇特定的網站進行設定,增加篩選器,也可以對所有網站同時增加篩選器
在IIS樹中右鍵左側的"電腦",調出屬性,選擇"編輯"調出主屬性對話方塊
調出主屬性對話方塊,添加篩選器。
建立篩選器所需要的虛擬目錄
選擇需要載入Tomcat服務網站,右鍵選擇建立,再選擇虛擬目錄
建立虛擬目錄,別名為jakarta。注意這個名字是固定值,不要拼字錯誤!
指定目錄為isapi_redirector2.dll所在目錄. 本例子中是 C:/Tomcat 5.0/bin/win32/i386
選擇執行,使之可用
成功建立虛擬目錄之後,你應該在管理其中看到如下顯示。
重新啟動IIS服務
選擇電腦,右鍵,選擇重新啟動IIS
選擇重新啟動Internet服務,點擊確定
作業系統中管理工具-事件檢視器中可以查看服務的啟動情況,isapi_redirector2.dll會把它的出錯資訊寫入事件檢視器,而不是像較早版本那樣寫入一個檔案中。
啟動之後在IIS控制台,網站屬性中的ISAPI篩選器的列表中,可以看到Tomcat連接器的狀態,有綠色向上箭頭就對了
測試Tomcat
首先測試Tomcat安裝的例子能否運行,使用Tomcat自己的伺服器和連接埠
測試伺服器中的servlets: http://localhost:8080/servlets-examples/
測試伺服器中的JSP: http://localhost:8080/jsp-examples/
測試Tomcat管理介面: http://127.0.0.1:8080/admin/
IIS
現在我們訪問IIS中的同一個例子,來測試連接器是否工作,注意修改地址和連接埠跟你的IIS相符合
http://localhost/servlets-examples/
http://localhost/jsp-examples/
如果一切正常,則你已經使得IIS5在Tomcat JK2 IIS 連接器的工作下可以解析jsp&servlet程式了,祝賀你。