RedHat7.2下Apache与Tomcat4整合实例

来源:互联网 发布:java虚拟机的作用 编辑:程序博客网 时间:2024/06/14 23:29
RedHat7.2下Apache与Tomcat4整合实例

摘要
  文章介绍了在RedHat Linux 7.2下装Apache与Tomcat4整合的过程,重点讲述mod_webapp.so的制作方法,以及在虚拟主机环境下的配置、管理和应用。(2002-10-14 12:44:29)

--------------------------------------------------------------------------------
By 淘淘


  在此介绍一下我在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

  本例将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与Tomcat4的整合

  1、首先安装Apache,

  请注意Apache必须安装DSO模式,即在执行./configure时须加上 --enable-module=so 

  默认安装到/usr/local/apache目录下。本例安装的apache的版本是1.3系列的。

  2、制作mod_webapp.so

  需要以下软件包:

  jakarta-tomcat-connectors-4.x.xx-src.tar.gz

  下载地址在tomcat对应版本的src目录下。例如,我安装的tomcat版本是4.1.12,则现在所需要的软件包的位置是:

  http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.12/src/jakarta-tomcat-connectors-4.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/gnome-2-snapshot/redhat-72-i386/autoconf-2.52-ximian.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-1.3/mod_webapp.so /usr/local/apache/libexec 

 

  现在mod_webapp.so已经制作好了,并已经拷贝到apache的libexec目录下。

  编辑apache的配置文件,在最后加上如下几行:


  ==========================
  LoadModule webapp_module libexec/mod_webapp.so
  AddModule mod_webapp.c
  WebAppConnection warpConnection warp localhost:8008
  WebAppDeploy examples warpConnection /examples
  ==========================

 

  运行以下命令:


  # /usr/local/apache/bin/apachectl configtest

 

  只要出现“Syntax OK”就表明mod_webapp.so已经安装成功了。 

  启动apache


  # /usr/local/apache/bin/apachectl start

 

  访问http://localhost/examples 就可以看到tomcat的例子程序了。

三、虚拟主机下的配置、管理和应用

  下面以一个例子来说明虚拟主机如何同时使用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/access_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,经测试已经可以正常运行。

陶然



发表回复】【查看论坛原帖】【添加到收藏夹】【关闭

 wsswh 回复于:2003-01-02 11:09:34
no find  /www?


 ahboer 回复于:2003-01-05 21:54:56
不对啊﹐我在RH8.0上只配置了TOMCAT﹐但就是RUN不起来。是不是非得要与APACHE整合才能运行哦?


 hermit 回复于:2003-01-05 22:05:11
tomcat 可以独立跑的...
以前用mod_webapp好像一直跑不起来,后来只好用jakarta上的mod_jk2了....^_^...


 oldboy 回复于:2003-03-01 11:52:45
最后与apache整合时,这句话:
WebAppConnection warpConnection warp localhost:8008
是不是应该是
WebAppConnection warpConnection warp localhost:8080
??

我试过整合好像有问题,请指点 :(


 oldboy 回复于:2003-03-01 16:34:28
http://192.168.1.71/examples/

WebApp: Error 404
(File: /usr/src/jakarta-tomcat-connectors-4.1.12-src/webapp/lib/wa_request.c Line: 205) 

--------------------------------------------------------------------------------
Web-application not yet deployed 

是不是mod_webapp.so有问题??


 you 回复于:2003-04-23 16:18:52
运行support/buildconf.sh 
--- Creating WebApp "configure" script
Creating configure ...
/usr/bin/autoconf: /nfs/users/thunder/cvs/ximian-desktop/autoconf/dest/usr/bin/autom4te: No such file or directory
/usr/bin/autoconf: exec: /nfs/users/thunder/cvs/ximian-desktop/autoconf/dest/usr/bin/autom4te: cannot execute: No such file or directory
????????????


 apile 回复于:2003-09-17 19:17:42
解決上面的問題:
1.修正httpd.conf裡面的
ServerName 為 localhost:8008或XXX:8008
反正記得加上:8008就對了..

2.在Tomcat的server.xml裡面尋找
<!--
<Service name="Tomcat-Apache">
</Service>
-->    
把<!-- 與-->拿掉....
Tomcat-4.1.27要找舊一點的Version把<Service這一段
補上去....因為4.1.27沒這個Service...
用上面寫的copy上去..Tomcat無法啟動

3.重新啟動tomcat與apache...
就可以了繼續設定Virtual host部分了........


 jackylau 回复于:2003-11-19 15:51:26
怎么样来实现开机自动启动tomcat(在LINUX下)呀?


 kenmin 回复于:2004-01-30 00:07:48
好象mod_jk是用来替代mod_webapp的, 能不能介绍下用mod_jk整合apache和tomcat,还有整合时apache和tomcat个自的版本是不是有一定的要求?我的apache,jdk,tomcat都已经分别配好,但在编译mod_jk时生成了3个文件,一个是mod_jk.so.000, 还有两个是链接到这个文件的,应该是失败了,但不知道是为什么。还有apache如果用rpm包安装, 文件所在的目录和用tar包编译的不一样,能不能把这两种安装方式的整合过程都介绍下,谢谢了。。

原创粉丝点击