Tomcat與IIS整合手記(轉載)
[日期:2012-04-01] | 來源: 作者: | [字體:大 中 小] |
付曉波
文件及版本:下載
Tomcat:Apache Tomcat 6.0.18 文件名:apache-tomcat-6.0.18.exe
Java JDK:JDK 1.6.11 (JDK 6 u11) 文件名:jdk-6u11-windows-i586-p.exe
連接器:jk2 文件名:isapi_redirector2.dll
註冊表文件名:jk2.reg
IIS:6
服務器系統:Window 2003 Server + SP2
安裝配置IIS6和Tomcat6
一、裝好Window2003Server+SP2,IIS6,將首頁文檔改爲index.asp。將下列內容插入index.asp中:
<center><h1>現在的時間是:<%=time%></h1></center>
如果是本機,則在瀏覽器中打入http://localhost。如果配置正確,瀏覽器應該顯示當前時間。
由於asp的配置網上很多,這裏不再贅述。
二、安裝Java JDK,一路默認安裝即可。本文安裝目錄爲:E:\Program Files\Java\jdk1.6.0_11
三、設置環境變量:我的電腦-->屬性-->高級-->環境變量:
添加:java_home 內容:E:\Program Files\Java\jdk1.6.0_11
添加:tomcat_home 內容:D:\Tomcat6
修改或添加:classpath 內容:.;%java_home%\lib\tools.jar;%java_home%\lib\dt.jar
修改:Path 在最後面添加內容:;%java_home%\bin
四、安裝Apache Tomcat 6.0.18,本文安裝目錄爲d:\Tomcat6(沒有空格)目錄下。可以考慮“全部安裝”。安裝完畢後,啓動Tomcat。這時電腦右下角應有Tomcat正在運行的標誌。如果沒有或Tomcat未啓動,則重新啓動服務器。重啓後,電腦右下角應有Tomcat正在運行的標誌。如果仍不正常,請重裝Tomcat。
五、Tomcat運行後,在瀏覽器中打入http://localhost:8080,回車後應出現Tomcat的默認頁面。點擊左邊的“Examples”,看看示例能否正常運行。如果能,則Tomcat基本配置完畢。
六、在D:\vm\jsp目錄下新建一個jsp文件:index.jsp,內容如下:
<center>index.jsp:現在時間是: <%=new java.util.Date()%></center>
七、爲Tomcat配置站點。先用“寫字板”或“FrontPage”等文本編輯軟件將D:\Tomcat6\conf目錄下的server.xml文件打開,再保存一下,這樣以後用“記事本”打開就沒有亂碼了。編輯server.xml,在</engine>前加入以下代碼:
<Host name="test1.com" appBase="D:\vm\jsp"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>test1.com</Alias>
<Context path="" reloadable="true" docBase="D:\vm\jsp" />
</Host>
其中:test1.com是域名,通過修改客戶機上的C:\WINDOWS\system32\drivers\etc目錄下的hosts文件,可以訪問test1.com。用記事本打開hosts文件,在最下方添加:
192.168.0.111 test1.com
保存並關閉。其中:192.168.0.111就是服務器的IP地址,請根據實際情況修改。如果是服務器和客戶機是一臺電腦,則改爲127.0.0.1。這樣在訪問test1.com時實際訪問的就是您的服務器。
此時,在瀏覽器上打http://test1.com:8080回車後,應出現JSP的當前時間。
八、回到IIS管理器,建立一個網站,主機頭爲test1.com,目錄爲D:\vm\jsp,保存。首頁文檔爲index.htm。
九、在D:\vm\jsp目錄下新建一個htm文件:index.htm,內容如下:
<center>這是IIS的index.htm文件!</center>
十、此時,在瀏覽器上打http://test1.com回車後,應出現“這是IIS的index.htm文件!”。
到此,IIS和Tomcat分別配置成功!
IIS6和Tomcat6整合
一、 將“連接器”文件isapi_redirector2.dll複製到d:\Tomcat6\bin\win32目錄下(win32目錄要新建)。
二、在d:\Tomcat6\conf目錄新建兩個文件:jk2.properties和workers2.properties:
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的內容如下:
[shm:]
info=Shared memory file. Required for multiprocess servers
file=d:\Tomcat\work\jk2.shm
size=1000000
[channel.socket:localhost:8009]
info=Ajp13 worker, connects to tomcat instance using AJP 1.3 protocol
tomcatId=localhost:8009
[uri:/]
[uri:/*.jsp]
[uri:!/*.asp]
(注意要給d:\Tomcat\work\目錄everyone寫的權限)
其中:[uri:/]代表根路徑的首頁文件歸Tomcat處理;[uri:/*.jsp]代表jsp文件歸Tomcat處理;[uri:!/*.jsp]代表asp文件不歸Tomcat處理;其餘文件歸IIS處理。
三、創建一個註冊文件jk2.reg,內容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\2.0]
“workersFile”=”D:\\Tomcat6\\conf\\workers2.properties”
“extensionUri”=”/akarta/isapi_redirector2.dll”
“logLevel”=”debug”
“serverRoot”=”D:\\Tomcat6”
保存後雙擊運行這個文件,導入註冊表中。
四、設置IIS網站的IsApi篩選器:
指向文件D:\Tomcat6\bin\win32\isapi_redirector2.dll
確定後是下面這樣:
五、在IIS中創建虛擬目錄jakarta,jakarta是一個規定的名字,必須這麼創建,這個虛擬目錄要指向isapi_redirector2.dll所在的目錄,並且設置爲可執行IsApi
六、在IIS的服務器擴展中添加允許isapi_redirector2.dll執行
重啓IIS和Tomcat。
訪問一下http://test1.com,這時先看看IIS默認網站的IsApi的tomcat是否爲綠色。如果不是,砸爛電腦。
可以看到jk2.shm已經被創建了,如果有問題在事件查看器中可以看到篩選器的錯誤說明
綠色後就可以通過IIS訪問Tomcat了,包括Tomcat的虛擬路徑也可以。
IIS: http://test1.com/
tomcat: http://test1.com/
七、workers2.properties中的設置
這個文件中[uri:/*]之類的設置會告訴篩選器符合哪些條件的路徑交給tomcat處理,像[uri:/*]會使篩選器把所有的地址都交給tomcat處理,這樣IIS中原來ASP的處理便全部都不能用了。
也可以指定某些地址才轉向Tomcat,像
[uri:/]
[uri:/*.jsp]
[uri:/admin/*]
[uri:/jsp-examples/*]
[uri:!/*.asp](注意“!”號)
表示/*.jsp /admin/* /jsp-examples/*才轉向tomcat,其他不符合這些條件的仍由IIS本身處理。
[uri:!/*.asp](注意“!”號)表示*.asp的文件不交給Tomcat處理。
[uri:/]表示根目錄的默認文件歸Tomcat處理,這樣可以直接打開index.jsp這個文件。
八、讓IIS和Tomcat支持中文文件名:
IIS:編輯Windows2003的註冊表(要重新啓動才能生效):
HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\FavorDBCS = 0
Tomcat:
1>在jsp文件最開頭加入下面這行(這裏是解決中文不能顯示的問題):
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
2>然後改tomcat的server.xml文件(這裏是解決含有中文的文件、圖片的不能下載、顯示的問題):
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8"/>
URIEncoding="UTF-8" 加上這句就可以識別中文文件了,也就是不光可以在jsp中顯示中文,還可以下載顯示。
九、總結:
1)調好IIS;
2)安裝JDK1.6,默認安裝即可;
3)安裝Tomcat6,安裝目錄選D:\TOMCAT6(不要有空格);
4)設置服務器的環境變量;
5)重啓計算機後,設置Tomcat6下conf下的server.xml文件,設置虛擬主機,使IIS和Tomcat用同一路徑;
6)測試IIS和Tomcat(8080端口)
7)註冊文件
8)在d:\Tomcat6\conf目錄下創建jk2.properties和workers2.properties
9)IIS建立web服務擴展
10)IIS網站建立ISAPI篩選器
11)IIS網站建立jakarta虛擬目錄,指向D:\TOMCAT\bin\win32,權限爲可執行
12)測試整合結果
13)處理中文顯示和中文文件名識別的問題。
14)注意D:\TOMCAT目錄要everyone可讀取;D:\TOMCAT\work目錄要everyone可寫。
15)如果您是做虛擬主機的,要求客戶在你指定的絕對目錄下編譯,負責你按照他編譯的目錄設置你的服務器,否則數據庫將無法被支持。
16)經過上述設置如果還不行,砸毀你的電腦。