整合 RH4 + TOMCAT5 + APACHE2 + jk2

整合 RH3 + TOMCAT5 + APACHE2 + jk2

注: 本文主要是拷贝www.chinanuix.net 中国UNIX社区 "最为完美的Tomcat+apache+php+jk2配置 (04/01/12更新)" 一文(http://www.chinaunix.net/jh/13/236685.html), 但或许是版本等原因,按原文配置完后并不能整合成功,又参考了一些讨论组的内容,终于尝试成功. 现完整贴出来, 希望对和我一样的初学者有所帮助, 必须说明的是, 主要是原作者的劳动, 在此向feiyi表示感谢.

运行环境: RedHat Enterprise 3.0

一. 有关说明
本文的目的是在RH3环境下用JK2整合Apache 和 Tomcat, 不涉及虚拟主机或PHP等. 下面一些步骤或许不是必需的, 请高手指正.

版本号:
Apache: 2.0.49
Tomcat: 5.0.19
jk2: 2.0.4
j2sdk: 1.4.2.04

下载文件: httpd-2.0.49.tar.gz
jakarta-tomcat-5.0.19.tar.gz
jakarta-tomcat-connectors-jk2-src-current.tar.gz
j2sdk-1_4_2_04-linux-i586.bin

安装位置:
Apache -> /usr/local/httpd-2.0.49
Tomcat -> /usr/local/jakarta-tomcat-5.0.19
j2sdk -> /usr/local/j2sdk1.4.2_04
jk2 -> /usr/local/jakarta-tomcat-connectors-jk2-2.0.4-src
建立软链接:
ln -s /usr/local/jakarta-tomcat-5.0.19 /usr/local/tomcat
ln -s /usr/local/httpd-2.0.49 /usr/local/apache
ln -s /usr/local/j2sdk1.4.2_04 /usr/local/jdk

有关配置文件的位置:
httpd.conf -> /usr/local/apache/conf/httpd.conf
workers2.properties -> /usr/local/apache/conf/workers2.properties
server.xml -> /usr/local/tomcat/conf/server.xml
jk2.properties -> /usr/local/tomcat/conf/jk2.properties

二. 安装步骤
JDK: rpm -ivh j2sdk-1_4_2_03-linux-i586.rpm
Apache: tar xvfz httpd-2.0.49.tar.gz
cd httpd-2.0.47
./configure --prefix=/usr/local/apache --enable-so
make
make install
(注: 安装RH3时, 并没选择安装Web服务)

Tomcat: tar xvfz jakarta-tomcat-5.0.19.tar.gz

编辑文件 /usr/local/tomcat/bin/catalina.sh
在注释行后插入这几行:
JAVA_HOME=/usr/local/jdk/
CATALINA_HOME="/usr/local/tomcat/"
JAVA_OPTS="-Xms256m -Xmx256m"
增加用户和组:
groupadd tomcat
useradd -g tomcat -c "Tomcat User" -d /usr/local/tomcat tomcat
chown -R tomcat:tomcat /usr/local/tomcat
chown -R tomcat:tomcat /usr/local/jakarta-tomcat-5.0.19
mkdir /usr/local/tomcat/webapps/mylog

JK2: tar xvfz jakarta-tomcat-connectors-jk2-src-current.tar.gz
cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2
chmod 755 buildconf.sh
./buildconf.sh
./configure --with-apxs2=/usr/local/apache/bin/apxs \
----with-apr-lib=/usr/local/apache/lib \
--with-tomcat-41=/usr/local/tomcat \
--with-java-home=/usr/local/jdk \
--with-jni
make
libtool --finish /usr/local/apache/httpd/modules
cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2
cp mod_jk2.so /usr/local/apache/modules/
cp libjkjni.so /usr/local/apache/modules/

cd /usr/local/tomcat/logs
touch jk2.shm
usermod -G apache,tomcat apache


启动时运行,编辑文件:/etc/rc.d/rc.local 增加下面两行:
su - tomcat -c /usr/local/tomcat/bin/startup.sh
/usr/local/apache/bin/apachectl start

三. 修改配置文件, 配置文件如不存在, 就创建.
httpd.conf:
注释掉AddDefaultCharset 这行
增加: LoadModule jk2_module modules/mod_jk2.so
workers2.properties: 如下
# only at beginnin. In production uncomment it out
[logger.apache2]
level=DEBUG

[shm]
file=/usr/local/apache/logs/shm.file
size=1048576

# Example socket channel, override port and host.
[channel.socket:localhost:8009]
info=Ajp13 forwarding over socket
tomcatId=localhost:8009

# define the workUntitled 1er
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009

[uri:/jsp-examples/*]
info=Map the jsp-examples webapp
worker=ajp13:localhost:8009

[uri:/servlets-examples/*]
info=Map the servlets-examples webapp
worker=ajp13:localhost:8009
jk2.properties: 如下
## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
## WHEN YOU EDIT THE FILE.

## COMMENTS WILL BE _LOST_

## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.

# Set the desired handler list
# handler.list=apr,request,channelJni
handler.list=channelSocket,request
#
# Override the default port for the socketChannel
# channelSocket.port=8019
channelSocket.port=8009
# Default:
# channelUnix.file=${jkHome}/work/jk2.socket
# Just to check if the the config is working
# shm.file=${jkHome}/work/jk2.shm

# In order to enable jni use any channelJni directive
# channelJni.disabled = 0
# And one of the following directives:

# apr.jniModeSo=/opt/apache2/modules/mod_jk2.so

# If set to inprocess the mod_jk2 will Register natives itself
# This will enable the starting of the Tomcat from mod_jk2
# apr.jniModeSo=inprocess
server.xml: 如下
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
debug="0"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
debug="0"/>

<!-- Global JNDI resources -->
<GlobalNamingResources>

<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>

<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">
</Resource>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>

</GlobalNamingResources>
<Service name="Catalina">
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />

<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" />

<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost" debug="0">

<!-- Global logger unless overridden at lower levels -->
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt"
timestamp="true"/>

<!-- Because this Realm is here, an instance will be shared globally -->

<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
debug="0" resourceName="UserDatabase"/>

<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>

<!-- Tomcat Root Context -->
<!--
<Context path="" docBase="ROOT" debug="0">
-->

</Host>

<Host name="www.yourname.com" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="mylog_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="mylog" debug="0" />
</Host>

</Engine>

</Service>

</Server>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值