歡迎您光臨本站 註冊首頁

Linux下Apache2 Tomcat5.0整合

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

#############################################<?XML:NAMESPACE PREFIX = O />

伺服器已有安裝有Tomcat5.0JDK1.4.2

Tomcat5.0目錄:/home/oracle/tomcat

JDK 1.4.2目錄:/home/oracle/j2sdk1.4.2_07

Tomcat5.0 JDK1.42 安裝步驟略

#############################################

安裝Apache2.0.59/home/oracle/apache

下載

httpd-2.0.59.tar.gz上傳至/home/oracle

cd /home/oracle

tar -zxvf httpd-2.0.59.tar.gz

cd httpd-2.0.59

#配置(prefix是安裝路徑,enable-mods-shared=all表示編譯配置所有so文件)

./configure --prefix=/home/oracle/apache --enable-mods-shared=all

make

make install

#配置httpd.conf

vi /home/oracle/apache/conf/httpd.conf

ServerName 配置為 127.0.0.1,伺服器IP或域名

DirectoryIndex 中添加index.htm index.jsp

DefaultLanguage 設置為zh-CN

cd /home/oracle/apache/bin

./apachectl start

打開 http://127.0.0.1/ 看見

"安裝Apache的測試頁面" 說明Apache已經安裝成功

如果出現"403 Forbidden錯誤"(而且httpd.conf未設置不允許訪問),解決方法如下:

不但要將WEB目錄設置為可讀,還要將WEB目錄的所有父級目錄設置為至少可檢索

(參考官方

FAQ:http://httpd.apache.org/docs/1.3/misc/FAQ.html#forbidden)

chmod x /home

chmod x /home/oracle

chmod x /home/oracle/apache

chmod 777 -R /home/oracle/apache/htdocs

################################################

編譯和設置mod_jk2

http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/

下載jakarta-tomcat-connectors-jk2-src-current.tar.gz,放至/home/oracle

tar zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz

cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2

./buildconf.sh

./configure --with-apxs2=/home/oracle/apache/bin/apxs --with-java-home=/home/oracle/j2sdk1.4.2_07

make jk2-build-apxs

cd server/apache2

make -f Makefile.apxs install

成功執行完這幾步驟之後,mod_jk2已經裝好,接下來是配置階段.

/home/oracle/apache/conf目錄下建立workers2.properties文件

,內容如下

#---- worker2.properties

[logger.apache2]

level=DEBUG

# Shared memory handling. Needs to be set.

[shm]

file=/home/oracle/apache/logs/shm.file

size=1048576

# Example socket channel, explicitly set port and host.

[channel.socket:localhost:8009]

tomcatId=localhost:8009

port=8009

host=127.0.0.1

# define the worker

[ajp13:localhost:8009]

channel=channel.socket:localhost:8009

#[status:status]

# Uri mapping

#[uri:/jkstatus/*]

#group=status:status

#[uri:/jsp-examples/*]

#group=ajp13:localhost:8009

#[uri:/servlets-examples/*]

#group=ajp13:localhost:8009

#[uri:/javaapp/*]

#group=ajp13:localhost:8009

#[uri:www.home.net/*.jsp]

#worker=ajp13:localhost:8009

#[uri:10.0.0.10/*]

#worker=ajp13:localhost:8009

#[uri:/*.do]

#worker=ajp13:localhost:8009

[uri:/servlet/*]

worker=ajp13:localhost:8009

[uri:/*.jsp]

worker=ajp13:localhost:8009

#---- end of workers2.properties

然後在httpd.conf中添加虛擬目錄

NameVirtualHost *

<VirtualHost *>

ServerAdmin 123@126.com

DocumentRoot /usr/website/123/webapps/ROOT

ServerName www.123.com

ErrorLog logs/123-error_log

CustomLog logs/123-access_log common

ErrorDocument 404 /error/404.html

ErrorDocument 401 /error/401.html

</VirtualHost>

################################################

配置Tomcat中的conf/server.xml文件

更改Tomcat埠為8080,避免與

apache衝突

分別在<Connector port="8080" <Connector port="8009" 中添加 URIEncoding="GBK",解決中文亂碼

添加與Apache虛擬主機對應的Tomcat虛擬主機

<Host name= www.123.com debug="0" appBase="/usr/website/123/webapps"

unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" > </Host>

################################################

至此,Linux

Apache2 Tomcat5整合成功!

作者心得體會

worker2.properties配置里

[uri:/*.jsp]

worker=ajp13:localhost:8009

這兩句話的作用很清楚,就是web應用遇到jsp

訪問請求的時候,把該文件解釋工作交給tomcat處理,達到apachetomcat整合後分工處理靜態和動態頁面的效果.

如果還需要tomcat處理servlet(也只有tomcat才能處理),用同樣方法設置讓tomcat處理servlet,如:[uri:/servlet/*] worker=ajp13:localhost:8009 ,(上面例子servlet文件在根目錄下servlet文件夾里),另外,上面例子把一些交給tomcat處理的語句註釋了.

然而,網上有一些apachetomcat整合方案worker2.properties配置里只配置一個:[uri:/*] worker=ajp13:localhost:8009 這個意思很明顯,就是告訴apache,把來自web應用的所有訪問都交給tomcat處理,其中包括靜態的html頁面,這樣做本人就認為apachetomcat的整合就沒意思了,雖然我沒有測試過,但我估計這樣做還沒有隻用tomcat效果好,試想想,所有訪問都由apache轉給tomcat處理,而

tomcat本身就能全部處理,那apache不就顯得有點多餘了嗎?

apachetomcat整合時有很多網友遇到問題,以下是我解決的方法:

1、 問題:訪問jsp文件,得到的是jsp源代碼;

解決方法:這是由於apache不能解釋jsp,而它又沒有把

jsp的解釋工作交給tomcat處理引起的,只要在worker2.propertiess文件里配置jsp的訪問解釋轉移就可以了([uri:/*.jsp] worker=ajp13:localhost:8009 );

2、 問題:訪問不了servlet

解決方法:1類似;

3、 問題:

圖片、樣式、腳本找不到(掉失);

解決方法:apachetomcatWEB應用的根目錄設置上要一致如:

ApacheDocumentRoot /usr/website/123/webapps/ROOT

TomcatappBase="/usr/website/123/webapps"

然後添加Apache虛擬主機時把80埠的描述去掉,如:

NameVirtualHost *:80

<VirtualHost *:80>

.......

</VirtualHost>

改成

NameVirtualHost *

<VirtualHost *>

.......

</VirtualHost>



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1477904


[火星人 ] Linux下Apache2 Tomcat5.0整合已經有434次圍觀

http://coctec.com/docs/linux/show-post-56454.html