apache-2.0.43和tomcat-4.1.12集成

发表于:2007-07-04来源:作者:点击数: 标签:
作者:luyongshou 在此介绍一下我在RedHat Linux 7.2下装Apache与 Tomcat 4整合的过程,重点讲述mod_webapp.so的制作方法,以及在虚拟主机环境下的配置、管理和应用,经 测试 已经成功。希望对各位有所帮助,如有错误也请指正。 一、正确安装Tomcat4 必要软

  作者:luyongshou
  在此介绍一下我在RedHat Linux 7.2下装Apache与Tomcat4整合的过程,重点讲述mod_webapp.so的制作方法,以及在虚拟主机环境下的配置、管理和应用,经测试已经成功。希望对各位有所帮助,如有错误也请指正。
  
  
  一、正确安装Tomcat4
    必要软件的安装,如下:
    1、Java SDK
    版本1.3.1或1.4,建议安装在/usr/java下,并做一个jdk的软链接。
    如果在装版本1.3.1的SDK出现问题,请阅读文档:http://java.sun.com/j2se/1.3/install-linux-sdk.html
    2、Tomcat4
    建议安装最新release版本的二进制文件安装包。当前最新的tomcat版本是4.1.12。
    下载地址:
    http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.12/bin/jakarta-tomcat-4.1.12.tar.gz
    下载后接压到一个目录 "tar xvzf jakarta-tomcat-4.1.12.tar.gz"
  本例将tomcat安装在/opt目录下,并做了个tomcat的软链接。
    设置如下环境变量并启用:
    PATH=$PATH:/usr/java/jdk/bin:/usr/java/jdk/jre/bin
    JAVA_HOME=/usr/java/jdk
    export JAVA_HOME
    CLASSPATH="./:/usr/java/jdk/lib:/usr/java/jdk/jre/lib"
    export CLASSPATH
    CATALINA_HOME=/opt/tomcat
    export CATALINA_HOME
  
    建议单建一个用户tomcat,将其设成/opt/tomcat以下所有目录文件的属主,并由它启动tomcat:
    # useradd tomcat
    # chown -R tomcat:tomcat /opt/tomcat
    # su - tomcat -c "/opt/tomcat/bin/startup.sh"
  
    访问http://localhost:8080/ 应能看到tomcat安装成功的页面。
  
  
  ===================================================================
  如果想和apache集成需要修改tomcat/conf/server.xml这个文件的
  
  
  
  
  
  
  
  中的""删掉,其实就是解除注释,因为这个网站是专门用来和apache的集成的。
  
  二、Apache与Tomcat4的整合
  
    1、首先安装Apache,
    请注意Apache必须安装DSO模式,即在执行./configure时须加上 --enable-module=so
  
    默认安装到/usr/local/apache目录下。本例安装的apache的版本是2.0.43系列的。
  
    2、制作mod_webapp.so
    需要以下软件包:
    jakarta-tomcat-connectors-4.x.xx-src.tar.gz
    下载地址在tomcat对应版本的src目录下。例如,我安装的tomcat版本是4.1.12,则现在所需要的软件包的位置是:
    http://jakarta.apache.org/builds/ja...1.12-src.tar.gz
    apr-0.9.1.tar.gz
    下载地址:http://www.apache.org/dist/apr/apr-0.9.1.tar.gz
    autoconf-2.52-ximian.1.i386.rpm
    下载地址:http://rpmfind.net/linux/RPM/helix/...ian.1.i386.html
    先用rpm安装autoconf-2.52,因为下面的安装将要用到;
    然后解开jakarta-tomcat-connectors-4.1.12-src.tar.gz,生成jakarta-tomcat-connectors-4.1.12-src目录,
    进入jakarta-tomcat-connectors-4.1.12-src/webapp的目录里,再把apr-0.9.1.tar.gz解到这个目录下,
    并把刚生成的目录apr-0.9.1的目录名改成apr。
    还是在webapp目录,运行以下命令:
    # support/buildconf.sh
    此时如果autoconf的版本低于2.52的话会报错退出,所以必须先安装autoconf-2.52。
    当命令成功结束后会在当前目录下生成configure文件。
    依次运行以下命令:
  
    # ./configure --with-apxs=/usr/local/apache/bin/apxs
    # make
    # cp apache-2.0/mod_webapp.so /usr/local/apache/modules
  
    现在mod_webapp.so已经制作好了,并已经拷贝到apache的modules目录下。
    编辑apache的配置文件,在最后加上如下几行:
    ==========================
    LoadModule webapp_module modules/mod_webapp.so
    WebAppConnection Connector warp localhost:8008
    WebAppDeploy examples Connector /examples
    ==========================
  
    运行以下命令:
    # /usr/local/apache/bin/apachectl configtest
  
  如果出现错误说你的apache的httpd.conf有问题后面的错误是"inviad virual host"
  
  就说明你的httpd.conf的ServerName没有设,把ServerName前面的"#"去掉就可以了!(这是差了好多资料才得到的答案,我也是在这儿困惑了好多天了)
  
    只要出现“Syntax OK”就表明mod_webapp.so已经安装成功了。
    启动apache
    # /usr/local/apache/bin/apachectl start
    访问http://localhost/examples 就可以看到tomcat的例子程序了。
  
  注意:一定要先启动tomcat 然后再重新启动apache!
  
  三、虚拟主机下的配置、管理和应用
  
    下面以一个例子来说明虚拟主机如何同时使用Apache与Tomcat4
  
    虚拟主机host1的目录结构如下所示:
  
  
    /www               
     |---host1  虚拟主机host1的主目录
     |  |--htdocs  普通根目录:用于显示静态页面或php程序
     |  |----logs  apache访问日志
     |  |----webapps java应用目录(新加,与tomcat的webapps目录无任何关联)
     |     |--ROOT jsp根目录:用于显示jsp页面程序
     |     |----jive 一套java应用实例
     |---host2   虚拟主机host2的主目录
    ............
  
  
  
    原来的apache的配置文件是这样配置的:
  
  
    =====================================
    NameVirtualHost xxx.xxx.xxx.xxx
  
    < VirtualHost xxx.xxx.xxx.xxx >
    ServerName host1.mydomain.com
     ServerAdmin webmaster@mydomain.com
   DocumentRoot /www/host1/htdocs
     ErrorLog /www/host1/logs/error_log
    CustomLog /www/host1/logs/aclearcase/" target="_blank" >ccess_log common
    < /VirtualHost >
    .............
  
    =====================================
  
  
  
    现在要让虚拟主机host1能同时使用Apache与Tomcat4,需要做如下配置:
  
    1、编辑tomcat的配置文件server.xml,在最后的部分做如下修改:
  
  
    =====================================
    < !-- Define an Apache-Connector Service -- >
  
    < Service name="Tomcat-Apache" >
  
    < Connector className="org.apache.catalina.connector.warp.WarpConnector"
    port="8008" minProcessors="5" maxProcessors="75"
    enableLookups="true" appBase="webapps"
    acceptCount="10" debug="0"/ >
  
  < Engine className="org.apache.catalina.connector.warp.WarpEngine"
    name="Apache" debug="0" >
  
    < Logger className="org.apache.catalina.logger.FileLogger"
    prefix="apache_log." suffix=".txt"
  timestamp="true"/ >
  
    < Realm className="org.apache.catalina.realm.MemoryRealm" / >
  
  < !-- 下面是新加的内容 -- >
  
    < Host name="host1.mydomain.com" debug="0" appBase="/www/host1/webapps"
  uppackWars="true" autoDeploy="true" >
    < Context path="" docBase="ROOT" debug="0"/ >
  < !-- 下面套用的是tomcat自带的管理页面,在虚拟主机下也可使用 -- >
  < Context path="/manager" debug="0" privileged="true"
    docBase="/opt/tomcat/server/webapps/manager"/ >
    < Context path="/jive" docBase="jive" debug="0"
  reloadable="true" crossContext="true"/ >
    < Logger className="org.apache.catalina.logger.FileLogger"
  prefix="host1_log." suffix=".txt"
    timestamp="true"/ >
    < /Host >
  
  < !-- 新加内容结束 -- >
  
  < /Engine >
  
    < /Service >
    =====================================
    2、编辑tomcat的管理权限文件tomcat-users.xml,在中间加一行:
  < user username="myname" password="mypasswd" roles="standard,manager"/ >
    3、编辑apache的配置文件,做如下修改
    =====================================
    LoadModule webapp_module libexec/mod_webapp.so
    AddModule mod_webapp.c
    WebAppConnection warpConnection warp localhost:8008
    NameVirtualHost xxx.xxx.xxx.xxx
    < VirtualHost xxx.xxx.xxx.xxx >
    ServerName host1.mydomain.com
     ServerAdmin webmaster@mydomain.com
   DocumentRoot /www/host1/htdocs
     ErrorLog /www/host1/logs/error_log
     CustomLog /www/host1/logs/access_log common
  
     WebAppDeploy ROOT warpConnection /
  
    #注:此行的作用是把ROOT目录作为虚拟主机URL的根,并使前面定义的根htdocs失效。
    #但如果不想整个虚拟主机都使用jsp页面程序,而想使用大量静态页面或php程序的话,
    #就要使用下面这行,并把所有的静态页面和php程序放在htdocs目录下。
    # WebAppDeploy ROOT warpConnection /jsp
  
     WebAppDeploy manager warpConnection /manager
    WebAppDeploy jive warpConnection /jive
    #在server.xml里每定义一个都要在这里加一条WebAppDeploy。
  
    < /VirtualHost >
    =====================================
  
    4、将tomcat用户设成/www/host1/webapps以下所有目录文件的属主。
  
    要注意的是,以后如果想上传或改动该目录以下的文件,都要将其属主改成tomcat。
    (如果一直是以root身份运行tomcat,这步可以省略。)
  
    # chown -R tomcat:tomcat /www/host1/webapps
    5、重起tomcat:
    # su - tomcat -c "/opt/tomcat/bin/shutdown.sh"
    # su - tomcat -c "/opt/tomcat/bin/startup.sh"
    6、重起apache:
    /usr/local/apache/bin/apachectl restart
  
    此时访问http://host1.mydomain.com/manager/html 会提示输入密码,在输入正确的 myname和mypasswd后,就会看到“Tomcat Web Application Manager”的页面,里面的 Application Path已经是虚拟主机里配置的信息了,并可以对其进行管理。
    到此虚拟主机下的配置和管理就全部完成,剩下的事情就是测试和应用了。在上面的例子
    里我们已经安装了jive,经测试已经可以正常运行。
  

原文转自:http://www.ltesting.net