Tomcat-5.5.7 + Apache-2.0.46 + mod_jk-2.0.4整合配置

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

原文出处:http://blog.beijingnet.com/index.php?op=ViewArticle&articleId=81&blogId=1

安装环境:

OS:Redhat Enterprise AS 3

apahce:使用系统自带httpd-2.0.46,使用其它版本的redhat自带的apache安装过程也一样。

Tomcat:Tomcat-5.5.7

jdk:mod_jk:2.0.4

参考:

http://www.reliablepenguin.com/clients/misc/tomcat/ http://www.pixelfreak.net/howto/apache2_jk2_tomcat/socket.html http://www.csse.uwa.edu.au/~ryan/tech/mod_jk2.html http://www.edong.org/main/content/view/386/38/ http://www.pixelfreak.net/howto/apache2_jk2_tomcat/socket.html http://www.cn-java.com/target/news.php?news_id=3043

1. 安装apache

系统自带,无须安装。需要注意的是需要安装httpd开发包,用于编译mod_jk.

查看是否安装httpd-develop

#rpm -qa|grep httpd-devel

httpd-devel-2.0.46-38.ent

如果出现以上信息说明httpd开发包已安装,如果未安装请从redhat第三张盘中安装。

2、安装jdk

从java.sun.com下载jdk-1_5_0_01-linux-i586-rpm.bin,tomcat5需要jdk5的支持。

下载后:

#chmod 755 jdk-1_5_0_01-linux-i586-rpm.bin

#rpm -ivh dk-1_5_0_01-linux-i586.rpm

在/etc/profile文件中加入:

JAVA_HOME=/usr/java/jdk1.5.0_01

export JAVA_HOME

PATH=$PATH:/usr/java/jdk1.5.0_01/bin

export PATH

export CATALINA_HOME=/usr/local/tomcat

export TOMCAT_HOME=/usr/local/tomcat

3.安装Tomcat

#wget http://apache.justdn.org/jakarta/tomcat-5/v5.5.7/bin/jakarta-tomcat-5.5.7.tar.gz

#tar zxvf jakarta-tomcat-5.5.7.tar.gz

#mv jakarta-tomcat-5.5.7 /usr/local/tomcat

4、编译和设置mod_jk

此时注意重新登录服务器使环境变量生效。

#wget http://apache.justdn.org/jakarta/tomcat-connectors/jk2/jakarta-tomcat-connectors-jk2-src-current.tar.gz

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

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

#./configure --with-apxs2=/usr/sbin/apxs --with-jni --with-apr-lib=/usr/lib

#vi server/apache2/Makefile

将:LIBTOOL=/bin/sh /var/www/build/libtool --silent

改为:LIBTOOL=/usr/bin/libtool

将:

fdef APR_LIBDIR_LA

JK_LDFLAGS=-L${APACHE2_LIBDIR} -lcrypt

else

JK_LDFLAGS=-lcrypt ${APR_LIBS}

endif

改为:

ifdef APR_LIBDIR_LA

JK_LDFLAGS=-L${APACHE2_LIBDIR} -lcrypt

else

JK_LDFLAGS=-lcrypt ${APR_LIBS} -lapr-0 -laprutil-0 -lgdbm -ldb-4.1 -lexpat

endif

如果不修改以上内容,将出现以下错误:

INFO: APR not loaded, disabling jni components: java.io.IOException: java.lang.UnsatisfiedLinkError:

/usr/lib/httpd/modules/libjkjni.so:

/usr/lib/libaprutil-0.so.0: undefined symbol: gdbm_errno

或者:

INFO: APR not loaded, disabling jni components: java.io.IOException: java.lang.UnsatisfiedLinkError:

/usr/lib/httpd/modules/libjkjni.so:

/usr/lib/httpd/modules/libjkjni.so: undefined symbol: apr_md5_final

#make

#libtool --finish /usr/lib/httpd/modules

#cp ../build/jk2/apache2/mod_jk2.so ../build/jk2/apache2/libjkjni.so /usr/lib/httpd/modules/

mod_jk安装完毕。

6、配置tomcat

#vi vi /usr/local/tomcat/bin/catalina.sh

# Get standard environment variables

PRGDIR=`dirname "$PRG"`

CATALINA_HOME=`cd "$PRGDIR/.." ; pwd`

if [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then

. "$CATALINA_HOME"/bin/setenv.sh

fi

# 添加以下行

serverRoot=/etc/httpd

export serverRoot

#vi /usr/local/tomcat/conf/jk2.properties

handler.list=apr,request,channelJni

channelUnix.file=/usr/local/tomcat/work/jk2.socket

serverRoot=/etc/httpd

apr.NativeSo=/usr/lib/httpd/modules/libjkjni.so

#vi /usr/local/tomcat/conf/server.xml

在</Engine>前加入

<Host name="www.abc.com" debug="1" appbase="/var/www/abc" unpackwars="true">

<Context path="" docBase="" debug="1"/>

</Host>

配置其它虚拟主机与此同。

7、设置虚拟主机

比如,我现在有虚拟主机 www.abc.com 希望把jsp和servlet都转到tomcat去

在 /etc/httpd/conf/ 下面创建workers2.properties,内容如下:

[shm]

file=/var/log/httpd/shm.file

size=1048576

# Example socket channel, explicitly set port and host.

[channel.socket:localhost:8009]

port=8009

host=127.0.0.1

# Example UNIX domain socket

[channel.un:/usr/local/tomcat/work/jk2.socket]

tomcatId=localhost:8009

debug=0

# define the worker

[ajp13:localhost:8009]

#channel=channel.un:/usr/local/tomcat/work/jk2.socket

# To use the TCP/IP socket instead, just comment out the above

# line, and uncomment the one below

channel=channel.socket:localhost:8009

# Announce a "status" worker

[status:status]

[uri:/status/*]

worker=status:status

# Uri mapping

[uri:/jsp-examples/*]

在/etc/httpd/conf/httpd.conf里面配置:

#tomcat

LoadModule jk2_module modules/mod_jk2.so

JkSet config.file /etc/httpd/conf/workers2.properties

#把下面这段放到VirtualHost之前,可以从全局避免用户用apache访问WEB-INF目录。

<Directory ~ "/WEB-INF/">

Order allow,deny

Deny from all

</Directory>

#典型的VirtualHost配置样本

NameVirtualHost 1.2.3.4 #(1.2.3.4你的服务器IP)

<VirtualHost 1.2.3.4>

ServerName www.abc.com

DocumentRoot /var/www/abc

DirectoryIndex index.htm index.html default.htm index.php index.jsp

<Location ~ "/*.jsp|/*/servlet/*>

JkUriSet worker ajp13:localhost:8009

</Location>

ErrorLog logs/www.abc.com-err_log

CustomLog logs/www.abc.com-acc_log common

</VirtualHost>

这样就可以为每个不同的虚拟主机分别指定使用或者不使用jsp功能。

8、启动、测试

#service httpd start

#/usr/local/tomcat/bin/startup.sh

浏览器里输入

http://1.2.3.4/jsp-examples/

http://1.2.3.4/status/

如果没有问题则说明安装成功。

欢迎与我交流

qq:138722

e-mail:xiaowei@beijingnet.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航