Posted on 2007-03-21 09:35
網(wǎng)上ヤ飄 閱讀(477)
評論(0) 編輯 收藏 所屬分類:
Ajax Web2.0
摘要?
這是一篇講述如何安裝、配置Tomcat?5?Java?Servlet?&?JSP服務(wù)到微軟IIS?5.0服務(wù)器的文章,這篇文章是本人自己配置過程和經(jīng)驗的總結(jié),并推薦了一些給過本人極大幫助的文檔。掌握方法的朋友只需要15分鐘就能完成整個配置過程。?
準(zhǔn)備工作?
Microsoft?Windows?2000?professional,?IIS5?已經(jīng)安裝并工作正常?
需要下載的軟件:?
Java?2?Standard?Edition?Software?Development?Kit?1.4.2.04?(或更高版本)?Jakarta?Tomcat?5.0?(或更高版本)?jakarta?Tomcat?Connectors-JK2.0.4(或更高版本)?
下載?
由于版本更新的問題,這里沒有給出軟件的準(zhǔn)確下載地址,但根據(jù)下面的鏈接用戶可以很容易找到所需軟件的確切地址。?
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?應(yīng)該在頁面的底部。寫此文章的時候Tomcat已經(jīng)發(fā)布了5.0.25版,不過配置過程是一樣的。?
選擇?5.0.24?可執(zhí)行文件?(或更高版本)?
Tomcat?Web?Server?連接器?
同樣在Apache?Jakarta下載頁面。Tomcat?Web?Server?連接器就在Tomcat?5.0.24鏈接的下面?
選擇?JK2?編譯版本?
選擇?win32,?然后選擇下載jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip?
注意?這個目錄列表顯示的文件名稱被截斷,所以你需要觀察瀏覽器狀態(tài)欄中的提示,確認(rèn)你準(zhǔn)備下載的文件應(yīng)該是以"...iis.zip"為結(jié)尾的?
安裝?
建議大家把下載的文件放在同一個文件夾里。?
Java?2?SDK?
運行j2sdk-1_4_2_04-windows-i586-p.exe?按照提示安裝?
可以更改安裝路徑到你習(xí)慣的地方?
Tomcat?5?
運行jakarta-tomcat-5.0.24.exe?按照提示安裝.?
如果要改變安裝路徑,可以在這個步驟操作。?
可以更改至其它路徑,如?C:\Tomcat?5.0?
設(shè)定密碼,妥善保管密碼,不推薦空密碼。?
這個步驟是選擇本地機器的jdk路徑,一般情況下,安裝文件會自動搜索并顯示,如果沒有正確顯示,也可以手動更改。?
成功安裝后,程序會提示啟動tomcat并查看readme文檔。?
注意:?啟動Tomcat之前要確定系統(tǒng)沒有其它服務(wù)已經(jīng)占用8080端口(Tomcat默認(rèn)端口)和8009端口(?Tomcat's?AJP13?連接器端口)?
Tomcat正常啟動后會在系統(tǒng)欄加載圖標(biāo)?
在圖標(biāo)上右鍵鼠標(biāo)可以看到一些設(shè)置項目?
點擊Configure...看到如下顯示,選擇Startup?type為automatic自動啟動。?
Tomcat?JK2?IIS?連接器?
解壓縮jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip得到如下文件夾?
進入\bin\后可見?
剪切/復(fù)制isapi_redirector2.dll?文件到Tomcat's?bin\目錄中?
新建目錄win32\i386\?并粘貼isapi_redirector2.dll。?
記住這個路徑,稍后配置IIS的時候還會用到。這個路徑不是系統(tǒng)要求的,可改變!?
現(xiàn)在可以刪除jakarta-tomcat-connectors-jk2.0.4-win32-IIS目錄,這里面的文件已經(jīng)沒用了。實際上在jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip中我們只用到了isapi_redirector2.dll一個文件?
設(shè)置Tomcat?
進入?Tomcat's?conf\?文件夾.?
要支持?JK2?連接器,?你可能需要修改jk2.properties文件.?大多數(shù)情況下保留此文件的默認(rèn)狀態(tài)即可,本人的多次配置過程都沒有修改過這個文件。?
##?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?
現(xiàn)在輪到workers2.properties,這個文件需要自己創(chuàng)建,內(nèi)容如下(附件中有一個copy)紅色的這行要注意了,把"C:\Tomcat?5.0\work\"這個路徑修改成你自己的路徑,而jk2.shm這個文件不用擔(dān)心,它現(xiàn)在不存在也沒有關(guān)系,它會在需要的時候自動被創(chuàng)建。?
[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?
看過網(wǎng)上的討論,有些朋友配置過程中的問題就出現(xiàn)在這里,所以多講幾句:這個文件中指定了解析jsp的目錄,也就是"http://xxxxx/dir/aa.jsp"這個url中的"dir",比如我們的網(wǎng)站中要增加/dir/這個路徑,并使這個路徑下面的jsp能夠被解析,那你就需要在workers2.properties文件中增加這樣一段話?
[uri:/dir/*]?info=JSP?examples,?map?requests?for?all?JSP?pages?to?Tomcat.?context=/dir?
并且在Tomcat的工作目錄中建立"/dir/"這個目錄。比如我們到現(xiàn)在為止,Tomcat的工作目錄是默認(rèn)的"/ROOT/",那我們就需要在"/ROOT/"路徑下新建"/dir/"目錄,并放置aa.jsp文件。重起服務(wù)之后,我們才能用"http://xxxxx/dir/aa.jsp"這樣的url來訪問aa.jsp文件。過去有的朋友誤以為"dir"是IIS工作目錄中的路徑,運行時無法顯示頁面,或者jsp代碼沒有解析,其實就是這個路徑設(shè)置的問題。值得注意的是如果IIS和Tomcat的工作目錄同時存在"/dir/",那么服務(wù)器會把此路徑連接至Tomcat處理。?當(dāng)你的Tomcat和IIS一起正常工作后,你可以隨時修改這個文件以增加新的目錄來支持jsp的運行。?
這里是關(guān)于worker2.properties這個文件更多的規(guī)則。?
右鍵系統(tǒng)欄中的Tomcat服務(wù)圖標(biāo),選擇"Stop?service",關(guān)閉服務(wù)。?
在"管理工具-服務(wù)"中找到"Apache?Tomcat"服務(wù),并確定它已經(jīng)啟動。?
Tomcat?IIS?連接器?
你已經(jīng)放置isapi_redirector2.dll在你的路徑下,本例子中是C:\Tomcat?5.0\bin\win32\i386?
現(xiàn)在需要添加一些必要的注冊信息到注冊表,redirector被IIS調(diào)用時會讀到。建立一個.reg文件?
Windows?Registry?Editor?Version?5.00?
[HKEY_LOCAL_MACHINE?OFTWARE\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文件?
成功則顯示如下:?
注冊表中可以看到:?
現(xiàn)在可以刪除這個.reg文件了?
Windows?
添加兩個系統(tǒng)環(huán)境變量,他們是CATALINA_HOME和JAVA_HOME.?
在桌面上右鍵"我的電腦",選擇"屬性-高級-環(huán)境變量"?
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:?你可以選擇特定的站點進行設(shè)置,增加篩選器,也可以對所有站點同時增加篩選器在IIS樹中右鍵左側(cè)的"計算機",調(diào)出屬性,選擇"編輯"調(diào)出主屬性對話框?
調(diào)出主屬性對話框,添加篩選器。?
創(chuàng)建篩選器所需要的虛擬目錄?
選擇需要加載Tomcat服務(wù)站點,右鍵選擇新建,再選擇虛擬目錄?
創(chuàng)建虛擬目錄,別名為jakarta。注意這個名字是固定值,不要拼寫錯誤!?
指定目錄為isapi_redirector2.dll所在目錄.?本例子中是?C:\Tomcat?5.0\bin\win32\i386?
選擇執(zhí)行,使之可用?
成功建立虛擬目錄之后,你應(yīng)該在管理其中看到如下顯示。?
重新啟動IIS服務(wù)?
選擇計算機,右鍵,選擇重新啟動IIS?
選擇重新啟動Internet服務(wù),點擊確定?
操作系統(tǒng)中管理工具-事件查看器中可以查看服務(wù)的啟動情況,isapi_redirector2.dll會把它的出錯信息寫入事件查看器,而不是像較早版本那樣寫入一個文件中。?
啟動之后在IIS控制臺,站點屬性中的ISAPI篩選器的列表中,可以看到Tomcat連接器的狀態(tài),有綠色向上箭頭就對了?
測試Tomcat?
首先測試Tomcat安裝的例子能否運行,使用Tomcat自己的服務(wù)器和端口?
測試服務(wù)器中的servlets:?http://localhost:8080/servlets-examples/?
測試服務(wù)器中的JSP:?http://localhost:8080/jsp-examples/?
測試Tomcat管理界面:?http://127.0.0.1:8080/admin/?
IIS?
現(xiàn)在我們訪問IIS中的同一個例子,來測試連接器是否工作,注意修改地址和端口跟你的IIS相符合?
http://localhost/servlets-examples/?
http://localhost/jsp-examples/?