Linux下Apache2+Tomcat5.0整合

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

 

服务器已有安装有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>

 

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

 

至此,LinuxApache2+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>

 

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值