作者: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
[email protected] 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"<