標籤:c style blog a http color
本篇文章主要是從安裝JK外掛程式方面來對整合Apache+Tomcat進行講解。
以前在本機上做項目測試的時候,都是單獨使用Tomcat,而沒有像在伺服器上一樣用Apache+Tomcat這樣的配置。但是整合Apache+Tomcat的好處人盡皆知。為什麼我們不來試一試呢?
其實剛開始的時候並不是為了整合Apache和Tomcat而整合的,因為之前在我的PC機上根本就沒 有裝Apache,一個機緣——公司需要幫別人維護一個用PHP寫的項目,於是為了測試PHP,所以我在PC機上裝了個Apache,並安裝了PHP(如 果有朋友需要瞭解Apache+PHP的安裝可以看這篇文章:Apache+PHP+MySQL在Windows下的安裝與配置圖解。如果這篇文章被刪除,你可以Email to me —— [email protected])。
好了,言歸正傳,開始我們的整合吧。
由於安裝Apache和Tomcat的文章在網上一搜一大把,所以我也沒有必要在這裡囉嗦了。從那以後開始吧。
整合Apache和Tomcat最重要的一步就是安裝Apache和Tomcat的“連接器”——JK 外掛程式(不知道我這樣的描述是否合理哈,若有錯誤,請大蝦們不吝指出)。JK又分JK和JK2,JK2的官方文檔說JK2是JK的升級版,而且功能增強,但 是JK的官方文檔又說項目不支援JK2了,反而重新來開發JK,並且在網上也很難下到JK2了,Apache的官方網站上都只有JK了。如果要下載就到這 裡:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/去下載一個適合的版本。
安裝JK外掛程式步驟:
1、下載JK。我下載的是mod_jk-1.2.26-httpd-2.2.4.so,下載好之後,將mod_jk-2.26-httpd-2.2.4.so拷貝到Apache/modules檔案夾下;
2、在Apache/conf下建立兩個設定檔:mod_jk.conf和workers.properties;
3、首先編輯workers.properties,這個設定檔是配置Tomcat的一些事項,內容如下:
# Defining a worker named tomcat1 and of type ajp13
worker.list=tomcat1
# Set properties for tomcat1
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=50
#worker.tomcat1.cachesize=1
#worker.tomcat1.cache_timeout=600
worker.tomcat1.socket_keepalive=1
worker.tomcat1.socket_timeout=300
# Define a ‘jkstatus‘ worker using status
3.1、當然也可以把workers.properties放在Tomcat/conf檔案夾下,那麼JK的設定檔mod_jk.conf就要稍加修改:
# 指出mod_jk模組工作所需要的工作檔案workers.properties的位置
JkWorkersFile "C:/Program Files/Apache Software Foundation/Tomcat 5.5/conf/workers.properties"(在JK的設定檔中給出workers.properties的硬碟絕對路徑)
4、再編輯mod_jk.conf,這個是JK的設定檔,內容如下:
#指出mod_jk模組工作所需要的工作檔案workers.properties的位置
JkWorkersFile "conf/workers.properties"
# Where to put jk logs
JkLogFile "logs/mod_jk.log"
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
#將所有servlet 和jsp請求通過ajp13的協議送給Tomcat,讓Tomcat來處理
JkMount /*.jsp tomcat1
JkMount /servlet/* tomcat1
JkMount /application/* tomcat1
JkMount /*.do tomcat1
JkMount /*Servlet tomcat1
JkMount /*.action tomcat1
5、修改Apache/conf/httpd.conf檔案,添加如下代碼:
LoadModule jk_module modules/mod_jk.so
Include conf/mod_jk.conf
6、將Apache/conf/httpd.conf修改Apache的根目錄:DocumentRoot "D:/workspace/tfttc/WebRoot"
經過上面幾步,本來該是整合成功了,如果你訪問http://localhost應該是可以訪問了,並且如果你訪問http://localhost/test.jsp也應該是正常的,但是,我的還是出了問題。當我啟動Apache的時候總是提示錯誤,查看記錄檔發現:httpd.exe: Syntax error on line 129 of F:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load F:/Program Files/Apache Software Foundation/Apache2.2/modules/mod_jk.so into server:。
於是我沒轍了。在網上去查了一下錯誤,都說是JK的版本問題,但是我也換了很多版本,還是沒用。於是我關機,睡覺。結果第二天早晨起來的時候,啟動Apache,沒報錯,於是我訪問http://localhost發現可以訪問,啟動Tomcat,再訪問http://localhost/test.jsp發現也是可以正常訪問的。於是我很迷惑,是不是整合Apache和Tomcat之後要重啟一下電腦呢?哈哈,如果你的情況也和我相似,不妨重啟一下電腦看看,或許會“柳暗花明又一村”呢。
原來,我還想將Apache、Tomcat、PHP都整合到一起,以便伺服器能同時支援JSP和PHP兩種web技術,本來以為會多麼的複雜和曲折,但是,等我做了以上工作之後,發現我的伺服器都已經可以既支援PHP又支援JSP了。太高興了。
我的安裝順序依次是:Apache、PHP、MySQL、Jdk、Tomcat、Jk。按照這樣的步驟,你的伺服器就可以既支援PHP又支援JSP了。
其實這些步驟可以分為三大部分:1、首先讓你的伺服器支援PHP,那麼你就得安裝Apache和PHP,安裝和配置完成之後,你必須測試讓你的伺服器支援PHP。(如果你要用到資料庫,那麼不妨把MySQL也安裝上)2、安裝和配置Jdk和tomcat,使你的Tomcat可以正常的支援JSP訪問。3、 安裝和配置Jk,這是關鍵的一步,因為經過前面兩部分的工作,你的伺服器已經可以單獨支援PHP和JSP了,而這一部分——Jk外掛程式的安裝是為了讓你的Apache和Tomcat協同工作。成功之後,你的伺服器就可以同時支援PHP和JSP了,比如你可以同時這樣訪問頁 面:http://localhost、http://localhost/test.php、http://localhost/test.jsp了。
不過上面的步驟說起來簡單,但是要做成功,它的道路是曲折的,過程是心酸的,只有我們自己才知道,但是,相信自己,沒有什麼是做不成的。
轉自:http://blog.sina.com.cn/s/blog_497300720100a6ek.html