歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Apache2.0的安裝和升級

  版權:   Published on The O'Reilly Network (http://www.oreillynet.com/)   http://www.oreillynet.com/pub/a/apache/2001/04/26/apache_2.Html   See this if you're having trouble printing code examples   原作者:Ryan Bloom 是 2.0 的核心開發成員,Apache Portable Run-time project 的付總裁,應 O'Reilly 的邀請,他寫了一個 2.0 的專欄,本文是這個專欄六篇文章中的第一篇。   Apache 開發人員已經在 2.0 上工作了兩年了,2001年4月5日,Apache 2.0 的第一個 beta 版本誕生了。     2001年3月28日,Apache 2.0.15 作為 alpha 版本發布,從 2.0.14 開始,Apache 開發小組改變了版本號策略。在以前的版本中,版本號總是先有 alpha 和 beta 然後開始就是 1.x.x 的正式版本。而新的版本策略則總是從 alpha 開始,一旦使用,則升級到 beta 或者 GA 質量,對於用戶而言,今天下載的一個 alpha 版本,明天就可能已經是 beta 了。     Apache 2.0 最重要的修改就是增加了多線程支持,1.3 版本依賴於進程來處理請求,這對於操作系統而言有很大的壓力,線程結合進程的辦法使 2.0 具有更高的伸縮性。     第二個主要的優點就是對輸入/輸出的過濾,一個模塊能修改另外一個模塊的輸出,1.3 版本中經常有人要求 CGI 腳本輸出 SSI 標簽 (tags),但是在 2.0 裡,這個要求就能實現了。     Apache 2.0 支持 SSL 而不需要修改內核,已經包含一個 mod_tls ,是 SSL 的一個雛形,會在以後的提供完整的 SSL 支持。     使用 Apache 2.0 的第一個障礙就是配置和安裝。有兩種方式的配置:   compile-time 和 run-time,本文著眼於取得 tarball,編譯,然後安裝。     首先下載 Apache 2.0,建議從官方網站下載,如果需要最新版本可以去下載 CVS。   本文假設你使用 Apache 2.0.15,解開壓縮:     tar -xvzf httpd-2*.tar.gz     Apache 2.0 采用 autoconf 和 liBTool 決定要編譯的部件,一般下載後的 tarball 文件已經包含用於配置的 configure 腳本,如果你想要自己生成則可以使用 ./buildconf 命令重新建立。     configure 腳本有很多的選項,要看詳細的列表可以使用如下命令:     ./configure --help     這裡介紹幾個主要的選項:     --prefix 指定 Apache 安裝的目標目錄。   --with-maintainer-mode 以完全的糾錯方式編譯。   --with-mpm 指定多處理模塊   --enable-module 指定哪些模塊可以編譯進 Apache,可以是模塊列表,也可以是關鍵字 most。能把一個模塊列表中的所有模塊都編譯進去。   --enable-mods-shared 指定哪些模塊應該被編譯為共享模塊。     多處理模塊 (MPM) 能讓您對任意站點的 Apache 2.0 做調整。一個網站或者操作系統上的配置在另外一台機器或者操作系統上可能會有炯然不同的結果,為了解決這個問題,系統管理員可以指定 Apache 服務器的運行方式,例如在 Unix 上有三種標准的 MPM:     Prefork -- 和 Apache 1.3 同樣的模塊,父進程派生一些子進程處理請求,每個子進程有一個線程,同一時間只能處理一個請求,當服務器忙時,它派生新的子進程。   Threaded -- 和 Prefork 相同,但是每個子進程擁有靜態數目的線程,具體的數目在 httpd.conf 中指定。   Perchild -- 父進程創建指定數目的子進程,每個子進程帶有最小數目的線程,當服務器忙時,進程創建更多的線程來處理請求。     對 Windows 操作系統而言,只有一種:     Winnt -- 和 Apache 1.3 類似,有兩個進程,父進程負責監視子進程,保證有進程存在能處理請求。       一旦 configure 完成,我們就可以 make 了,如果順利的話,最後一步就是安裝:make install。如果你在前面的 configure 中沒有指定 --prefix 參數,那麼 Apache 缺省的安裝目錄就是 /usr/local/apache。       如果你是以 root 用戶安裝的 Apache ,那麼直接在浏覽器上輸入 http://localhost 就可以看到一個 Apache 的測試頁面了。如果不是以 root 安裝 Apache 的話,Apache 的缺省端口為 8080 ,因此,浏覽的地址應該為: http://localhost:8080/。如果沒有看到的話,請查看錯誤日志。     版權:   Published on The O'Reilly Network (http://www.oreillynet.com/)   http://www.oreillynet.com/pub/a/apache/2001/06/19/apache_2.html   See this if you're having trouble printing code examples     上一篇我們談到了 2.0 的安裝,但是對於大多數用來說,應該是從 1.3 的升級,因此,本文將探討 apache.org 的升級過程,就其中的疑難問題給與解釋。       Apache.org 雖然不能算十分繁忙的網站,但是也不能因為升級讓你停止服務,所以我們采用的策略是在另外一個端口 8091 上先測試一個星期,如果正常著切換到 80 端口。     我們首先要決定的是采用那個 MPM ,建議首先使用 prefork 的 MPM ,如果 Apache 能正常跑起來,就可以考慮采用其他的 MPM 。     MPM 對服務器的影響不僅僅限於進程和線程之間的關系,很多版本的 Unix 不能很好的派生線程,他們把進程和所有線程做一個拷貝,然後殺掉所有線程,只剩下一個,所以這樣並不是一個高效的辦法。     Apache 的處理辦法是,由一個 CGI 守護程序處理新創建的 CGI 進程,這個守護程序在所有子進程創建前生成,是一個單線程的進程,當收到一個 CGI 請求時, Apache 把它發給 CGI 守護程序,然後守護程序派生一個 CGI 進程,該進程響應用戶的請求。這個模塊沒有標准的 mod_cgi 那麼先進,但是如果你的threaded 方式的 MPM 處理 CGI 請求有問題的話,可以采用 mod_cgi 來“降格以求”,盡管在性能上會有所下降。     Apache 1.3 和 2.0 最大的區別就在於過濾器,唯一實現了過濾器的標准模塊是 mod_include,在 1.3 中,如果要處理 .shtml 文件,那麼必須加入一行:     AddHandler server-parsed .shtml     但是在 2.0 中,沒有服務器解析的處理器了,你要修改為如下:     SetOutputFilter INCLUDES     這句話可以加在 Files, Directory, 或者 Location 裡面,這意味著配置文件會越來越大並且越來越難讀,同樣,這也意味著 mime 類型不再像他們在以前的 Apache 裡面那麼重要了,而 Handlers 也風光不再。大多數模塊都采用缺省的 handler 來從磁盤上讀入文件,然後使用過濾器修改數據。     [原文中提到了 IPv6 問題,這裡不再翻譯]




Copyright © Linux教程網 All Rights Reserved