RedHat7.2下Apache與Tomcat4整合實例

火星人 @ 2014-03-12 , reply:0


  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,經測試已經可以正常運行。

陶然







[火星人 via ] RedHat7.2下Apache與Tomcat4整合實例已經有214次圍觀

http://www.coctec.com/docs/linux/show-post-67801.html