整合RH3+TOMCAT5+APACHE2+jk2
發表于:2007-07-04來源:作者:點擊數:
標簽:
運行環境: 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 下載文件: http
運行環境: 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:
# channel
Unix.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" shu
tdown="SHU
TDOWN" de
bug="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" a
clearcase/" target="_blank" >cceptCount="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>
原文轉自:http://www.anti-gravitydesign.com