天天看點

xampp tomcat配置php檔案,XAMPP與TOMCAT整合的一般方法

XAMPP與TOMCAT整合的一般方法

[摘要:寫正在前裡的話: XAMPP不消多道,是一套特别很是棒的散成對象,能夠快速拆建一個開辟情況。新版本的XAMPP for

win(1.7.4)包括了Tomcat的插件,能夠支撐jsp的剖析,然則還沒有湧現針對Linux仄台]

寫在前面的話:

XAMPP

不用多說,是一套非常棒的內建工具,可以快速搭建一個開發環境。新版本的XAMPP for

win(1.7.4)包含了Tomcat的插件,可以支援jsp的解析,但是尚未出現針對Linux平台的XAMPP Add

ons。這大概是由于Linux發行版本衆多,開發這樣一款插件需要考慮到相容性問題。關鍵的動态庫mod_ji.so是依賴于平台的,是以我們需要自行

手動編譯一個出來。

聲明:下面方法在xampp1.7.4+apache2.2.17+tomcat-connectors-1.2.32下測試通過,但不保證所有的版本使用此法都能通過,慎用。

1. 整合步驟

參考:http://tomcat.apache.org/connectors-doc/index.html

使用Tomcat

Connector,結合apxs來編譯一個mod_jk.so出來,修改httpd.conf檔案,使得apache遇到jsp檔案,将請求移交給tomcat。

使用XAMPP自身的apxs在編譯Tomcat

Connector的時候會提示一些奇怪的錯誤,遂使用相同版本的apache源碼進行編譯,最後經過嘗試,配置成功,步驟如下:

1)分别下載下傳apache和tomcat

connector源碼,解壓後,先安裝apache,安裝apache步驟參考官網,此處省略。 假定apache目錄位于/usr/local/httpd-2.2.17;

假定xampp目錄位于/opt/lampp

2)進入tomcat

connector/native目錄下,執行configure指令:

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150

1.sudo ./configure

--with-apxs=/usr/local/httpd-2.2.17/bin/apxs

2.sudo make

3.sudo makeinstall

順利的話,執行完畢會在httpd-2.2.17/modules下生成mod_jk.so檔案,将該檔案移動到/opt/lampp/libexec或者/opt/lampp/modules下;

3)增加worker.properties檔案

在/opt/lampp/etc下建立檔案worker.properties,内容為:

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150

1.worker.list=worker1

2.worker.worker1.type=ajp13

3.worker.worker1.host=localhost

4.worker.worker1.port=8009

4)打開/opt/lampp/etc/httpd.conf,在檔案末尾增加如下代碼

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150

01.#

mod_jk檔案為事先編譯好的so檔案——能否整合成功,最主要是依賴于此檔案

02.LoadModule

jk_module /opt/lampp/libexec/mod_jk.so

03.

04.#

指定tomcat監聽配置檔案位址,這是之前我們完成的那個檔案

05.JkWorkersFile"/opt/lampp/etc/workers.properties"

06.

07.#

指定日志存放位置

08.JkLogFile"/opt/tomcat6/logs/mod_jk2.log"

09.

10.#

JK share memory

11.JkShmFile"/opt/tomcat6/logs/mod_jk.shm"

12.

13.#

配置日志級别

14.JkLogLevel

info

15.

16.#

Select the timestamp log format

17.JkLogStampFormat"[%a

%b %d %H:%M:%S %Y] "

18.

19.#

tomcat中所有項目的靜态檔案交由apache處理

20.JkAutoAlias

/opt/tomcat6/webapps

21.

22.#

也可以設定tomcat中某個項目的靜态檔案讓apache處理

23.# Alias /opt/tomcat6/webapps

24.

25.#

讓Apache支援對servlet傳送,用以Tomcat解析

26.#

注意worker1是在workers.properties中配置的worker,如果名稱有誤,

27.#

或者沒有在workers.properties中配置,則啟動xampp的時候會提示找

28.#

不到worker1

29.JkMount

servlet/ worker1 # send all requests jsp requests to files located

in /otherworker will go worker2 JkMount /otherworker/*.jsp worker2

JkMountFile

從JK1.2.9版本後的新式指令。動态加載需要處理的請求。實作将需要處理的請求寫在名為uriworkermap.properties的檔案中。這樣可以不用重新開機apache伺服器就能修改服務連接配接。

舉例:

# Sample uriworkermap.properties file /servlets-examples/*=ajp13w # Do not map .jpeg files !/servlets-examples/*.jpeg=ajp13w # Make jsp examples initially disabled -/jsp-examples/*=ajp13w

!的作用相當于JkUnMount,而-表示禁用。可以在伺服器啟動後修改這個檔案,apache每隔60s會重載一次。

JkAutoAlias

動将tomcat的webapps中的上下文同步到apache的文檔空間。該選項開啟了apache解析web項目靜态内容的功能,讓tomcat去解

析動态的部分。這樣就不需要使用Alias指令單獨設定每一個項目的分工。強烈建議使用JkMount指定将所有的請求預設交給tomcat處理,使用

JkMount設定例外的内容,交給apache處理。需要注意的是確定僅有靜态的内容是需要被apache解析的。因為任意被apache解析的靜态内

容都将繞過web.xml中定義的安全限制。

另外,可以使用JkUnMount來設定不予處理的請求。更多配置參考官方文檔。