整合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:
  # 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" aclearcase/" 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.ltesting.net