redhat自帶apache2.0和tomcat4.1的安裝

發表于:2007-05-25來源:作者:點擊數: 標簽:
最近給朋友裝臺webserver用到了apache+tomcat,使用了 linux 自帶的apache,其間費了一些挫折,把這些寫出來,供大家今后使用,希望能夠節省大家的時間. 使用的組件: redhat9自帶的apache2.0.40(也可以使用redhat8,他的apache也是2.0.40) httpd-2.0.40.tar.gz(使

最近給朋友裝臺web server用到了apache+tomcat,使用了linux自帶的apache,其間費了一些挫折,把這些寫出來,供大家今后使用,希望能夠節省大家的時間.
 
使用的組件:
redhat 9自帶的apache2.0.40(也可以使用redhat 8,他的apache也是2.0.40)
httpd-2.0.40.tar.gz (使用自帶的apache,為什么還要他的原碼呢?之后的操作中我告訴你他的用處)
j2sdk-1_4_1_04-linux-i586-rpm.bin(你也可以選用其他版本的JDK)
tomcat 4.1.24 (其中tomcat4.1.18我也調試了,都可以)
tomcat-connectors-4.1.24為了把apache和tomcat整合到一起需要的connector.(這里的整合其實就是用這個連接器把apache的一些請求重定向到tomcat)


使用自帶apache的原因:
因為自帶的apache的modules里面包括了基本所有流行的module,如果你下載原碼自己編譯的話,就要編譯所有的module,不過如果其他的功能你不需要的話,也根本不用費那個勁.但我為了防止以后會用到別的module, 所以我選擇使用系統自帶的apache. 編譯新的模塊比較麻煩,所以建議大家業使用自帶的apache.以下是系統apache所帶的module,如果這些都自己編譯,累不說,還不敢保證是對的.
mod_aclearcase/" target="_blank" >ccess.so
mod_actions.so
mod_alias.so
mod_asis.so
mod_auth_anon.so
mod_auth_dbm.so
mod_auth_digest.so
mod_auth.so
mod_autoindex.so
mod_cern_meta.so
mod_cgi.so
mod_dav_fs.so
mod_dav.so
mod_deflate.so
mod_dir.so
mod_env.so
mod_expires.so
mod_headers.so
mod_imap.so
mod_include.so
mod_info.so
mod_log_config.so
mod_mime_magic.so
mod_mime.so
mod_negotiation.so
mod_proxy_connect.so
mod_proxy_ftp.so
mod_proxy_http.so
mod_proxy.so
mod_rewrite.so
mod_setenvif.so
mod_speling.so
mod_status.so
mod_suexec.so
mod_unique_id.so
mod_userdir.so
mod_usertrack.so
mod_vhost_alias.so
mod_webapp.so      &這個就是需要自己編譯的connector
整合apache+tomcat費勁就在于編譯這個connector.
Apache沒有把這個connetor ( mod_webapp.so   編譯進去是因為他和使用的tomcat的版本相關,所以在不知道用戶使用那個版本的情況下,不能加這個module.





其中的下載地址.(僅供參考)
http://apache.te8.com/dist/jakarta/tomcat-4/
tomcat-4.1.24.tar.gz        (這個解開包就可以直接運行,不用下載原碼在自己編譯,不然tomcat的編譯也很麻煩)
http://apache.te8.com/dist/jakarta/tomcat-4/source/
在這里可以下載到 (這個是原碼要自己編譯)
tomcat-connectors-4.1.24-src.tar.gz

 也可以下載到4.1.18版本

http://apache.todayisp.com/httpd/old/
httpd-2.0.40.tar.gz                 

http://java.sun.com/j2se/1.4.1/download.html
j2sdk-1_4_1_04-linux-i586-rpm.bin

這些地址有的時候有問題,建議大家只要記住名字可以在北大的天網搜索,都可以找到而且速度一般都挺快的. http://e.pku.edu.cn/

過程:
1.先安裝JDK
j2sdk-1_4_1_04-linux-i586-rpm.bin
是個可執行文件,安裝沒有難度,不提他
安裝的目錄是/usr/local/jdk1.4.1

2. 安裝tomcat
下載的這個版本的解開后就可以執行.如果不能正常運行你在下載原碼自己編譯
不過我試了幾個版本都可以.要運行tomcat之前要先完成3.設置系統的環境變量
為了使用tomcat的管理界面管理tomcat,你要修改 conf/tomcat-users.xml
添加
<role rolename="manager"/>
<role rolename="admin"/>
并給一個用戶賦予這兩個用戶角色
<user username="both" password="tomcat" roles="admin,tomcat,role1,manager"/>
在其后的使用中你就可以用web界面管理tomcat了


#cd /opt
#tar –zxvf tomcat-4.1.24.tar.gz 
安裝目錄
/opt/jakarta-tomcat-4.1.24

3.設置系統的環境變量
編輯/etc/profile
PATH=$PATH:/opt/ jakarta-tomcat-4.1.24/bin: /usr/local/jdk1.4.1/bin
JAVA_HOME=/usr/local/jdk1.4.1
CATALINA_HOME=/opt/ jakarta-tomcat-4.1.18
export PATH JAVA_HOME CATALINA_HOME

4.找個沒用的地方安裝httpd-2.0.40.tar.gz
注釋:必須用和系統相同的apache版本,不然會出問題。我最開始用了最新的apache2.0.47,結果編譯后的mod_webapp.so不能使用,有不認識的符號。
我是把他裝在/opt下面的
#cd /opt
#tar –zxvf httpd-2.0.40.tar.gz
#cd httpd-2.0.40
#./configure ./configure --prefix=/opt/apache40 --enable-module=so --enable-rule=SHARED_CORE
#make
#make install 

5. 編譯connector (mod_webapp.so)
注釋:編譯2.0.40的connector不需要apr,編譯1.x.x的版本的時候需要apr
我在安裝apache+tomcat之前看到的很多文章說需要apr,但我做的時候確實沒有用到
我編譯了apache2.0.40 for 4.1.24 和4.1.18的connector都沒有用到
但在編譯apache1.3.38的connector時用到了apr.

#cd /opt
#tar –zxvf tomcat-connectors-4.1.24-src.tar.gz
#cd  jakarta-tomcat-connectors-4.1.24-src/webapp
# ./support/buildconf.sh 
#./configure --with-apxs=/opt/apache40/bin/apxs
因為系統卻省的apache沒有apxs.
哈哈,知道為什么系統有apache,還要編譯安裝個apache的原因了吧.
那么apxs是干什么的呢?看看www.apache.org上的解釋
apxs is a tool for building and installing extension modules for the Apache HyperText Transfer Protocol (HTTP) server. This is achieved by building a dynamic shared object (DSO) from one or more source or object files which then can be loaded into the Apache server under runtime via the LoadModule directive from mod_so.
#make
#cd apache-2.0 
#cp mod_webapp.so /etc/httpd/modules/

===============================================================
好了,現在的所有的準備工作都做完了要測試了
編輯httpd.conf
vi /etc/httpd/conf/httpd.conf

LoadModule webapp_module modules/mod_webapp.so

僅此一條就夠了,很多地方介紹的時候說
還要AddModule之類的是apache1.x.x中的做法,我開始的時候就按照別的介紹,加了一些別的語句都報錯了,最好調好的系統中,調用mod_webapp.so就這么一句話。

為了測試還要在末尾添加
WebAppConnection warpConnection warp localhost:8008 
WebAppDeploy examples warpConnection /examples/ 
WebAppInfo /webapp-info


解釋:在apache+tomcat的應用中,其實是把tomcat作為一個application server。apache把其中的一些請求轉發給tomcat。所以apache和tomcat可以在不同的機器上。配置時只要你把localhost改成tomcat服務器的IP就可以了,其中的8008是標準的端口,完全可以在tomcat中重新設定。
WebAppDeploy examples warpConnection /examples/
這行是把tomcat中的examples連接到apache上來,也就是用戶請求examples時,請求轉發給tomcat.

編輯 tomcat的配置文件 server.xml 
去掉關于Tomcat-Apache 服務的那段注釋,使connector生效
<!-- 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" />

   </Engine>

 </Service>
-- >(這行刪除)

把其中的Apache 給成可以連接tomcat的web server的IP地址,或主機名稱,這里我是該成了localhost,因為是給本機的apache用的。


起動tomcat
#cd /opt/jakarta-tomcat-4.1.24/bin
#./startup.sh

Using CATALINA_BASE:   /opt/jakarta-tomcat-4.1.24
Using CATALINA_HOME:   /opt/jakarta-tomcat-4.1.24
Using CATALINA_TMPDIR: /opt/jakarta-tomcat-4.1.24/temp
Using JAVA_HOME:       /usr/local/jdk1.4.1

測試:
在IE瀏覽器中敲入http://x.x.x.x:8080 其中的x.x.x.x是你運行tomcat的機器
如果你可以看到tomcat的缺省web界面就對了

起動apache
#/etc/init.d/httpd start
Starting httpd:   OK  ]
在IE瀏覽器中敲入http://x.x.x.x 其中的x.x.x.x是你運行apache的機器
如果你可以看到apache的缺省web界面就對了
測試apache+tomcat的整合
在IE瀏覽器中敲入http://x.x.x.x/examples/ < -- 不要丟了/ 不然……

于是你就可以看到jsp 和 servlet的例子了。


其余的更多的使用配置,大家好好看文檔吧。

如果其中有錯誤,請大家指出.調了很多次很多個,可能有記錯的地方


     

 shuoshuo 回復于:2003-07-31 10:31:34
謝謝。正需要那。
現在問個問題,我在mod_webapp.so時候:
# ./support/buildconf.sh 提示
--- Checking "autoconf" version
autoconf not found.
autoconf version 2.52 or newer required to build from CVS.

我找了個2.52的autoconf  rpm包裝上,仍然報此錯誤。

我的是redhat8 自帶,其它東西完全同上面描述.

 shuoshuo 回復于:2003-07-31 11:21:47
問題解決,按樓主的步驟一步一步配置成功,感謝樓主分享。

那個問題偶修改buildconf.sh,有關檢測autoconf的全部注釋掉
最后使用autoconf的地方改為絕對路徑。

總算過去了……

 peng 回復于:2003-07-31 12:15:35
Apache的編譯:以下通用的編譯選項能滿足以后任意模塊的安裝:
./configure --prefix=/another_driver/apache/ --enable-shared=max --enable-module=most
比如:
./configure --prefix=/home/apache/ --enable-shared=max --enable-module=most


解釋:
--prefix=/another_driver/apache/:建議將apache服務安裝在另外一個驅動設備上的目的在于硬盤往往是一個系統使用壽命最低的設備,因此:將服務數據和系統完全分開,不僅能提高了數據的訪問速度,更重要的,大大方便系統升級,應用備份和恢復過程。

--shared-module=max:使用動態加載方式載入子模塊會帶來5%的性能下降,但和帶來的配置方便相比更本不算什么:比如模塊升級方便,系統升級風險降低,安裝過程標準化等

--enable-module=most:用most可以將一些不常用的module編譯進來。

如果不想build so, 也可以這樣:
./configure \
"--with-layout=Apache" \
"--prefix=/path/to/apache" \
"--disable-module=access" \
"--disable-module=actions" \
"--disable-module=autoindex" \
"--disable-module=env" \
"--disable-module=imap" \
"--disable-module=negotiation" \
"--disable-module=setenvif" \
"--disable-module=status" \
"--disable-module=userdir" \
"--disable-module=cgi" \
"--disable-module=include" \
"--disable-module=auth" \
"--disable-module=asis

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97