Gentoo Logo

Upgrading Apache

內容:

1.  簡介

在Gentoo中Apache和其中的模組的管理上已經變成有點危險。其中有一些問題會產生 並且已經被回報,如下:

  • 從其他版本轉過來Gentoo的使用者會發現在設定上與先前有明顯的差異。
  • 有很多的模組使用相同的code,但是所做的事情卻全然不同。
  • 有很多的模組並沒有被管理的很好 -- 大部分的原因是因為有太多可用的模組了。
  • 模組並沒有相同的設定方式
  • 有些模組可以支援兩種版本的Apache,但是ebuild卻不能提供如此的功能。
  • 選擇的Apache的能力對於Gentoo的使用者並不允許(例如:MPMs)
  • 對於Apache的Bug越積越多

怎樣解決呢?Apache小組將會被擴充,增加一些新的成員用來發展一些新的eclass,更新 所有的模組並且修正Bug。

這份文件會詳述如何更新Apache而不損害到您的系統。如果您是一位發展人員,並且希望 知道我們改變了哪些東西或是Ebuild需要怎樣修改才能擁有新的特色,可以參考 Apache 發展人員參考手冊.

2.  升級指令

我們已經將Apache改變很多使得能在Gentoo運作。每個與Apache相關的套件都必須要更新 而且原本可以使用的套件如果不更新可能會不能繼續使用。

第一您需要查看哪些套件您需要升級。您可以利用equery來查看,equery 被放在app-portage/gentoolkit套件中。

原始碼 2.1: Finding packages to update

$ equery depends net-www/apache
[ Searching for packages depending on net-www/apache... ]
dev-db/phpmyadmin-2.5.6
dev-php/mod_php-4.3.10
dev-php/phpsysinfo-2.1-r2
net-www/mod_bandwidth-2.0.5
net-www/mod_layout-4.0.1a
net-www/mod_ldap_userdir-1.1.4
net-www/mod_loopback-1.04
net-www/mod_mp3-0.40
net-www/mod_random-2.0
net-www/mod_throttle-3.1.2-r1
net-www/mod_watch-3.18
www-apps/viewcvs-0.9.2_p20030430

重要: 在您系統中所安裝的套件清單與上述會不盡相同,請確定你自己執行過以上指令。

警告: 其中有些模組與套件與Apache相依但是還沒被更新。對於一些特殊的套件請查閱 bugzilla

有很多使用webappeclass的web應用程式並不會被影響,但是您仍然應該查看是否 有更新的版本。

當所有支援我們改變的套件仍然被標示為unstable,為了要能使用他們。我們必須要把他加入 /etc/portage/package.keywords中。

注意: /etc/portage有可能不存在,請自行建立。

原始碼 2.2: Additions to /etc/portage/package.keywords

(如果您使用 Apache 1.3)
=net-www/apache-1*
net-www/gentoo-webroot-default

(如果您想要在Apache 1.3 中使用 lingerd)
net-www/lingerd

(如果您使用 Apache 2.0)
net-www/apache
dev-libs/apr
dev-libs/apr-util
net-www/gentoo-webroot-default

(放入您想要升級的相關套件)
dev-php/mod_php
net-www/mod_bandwidth
net-www/mod_layout
net-www/mod_ldap_userdir
net-www/mod_loopback
net-www/mod_mp3
net-www/mod_random
net-www/mod_throttle
net-www/mod_watch

因為我們新增了一些相關的USE-flag,您也許想要查閱看看並且增加到 /etc/portage/package.use中。請參考 Apache 支援的 USE-flags 來取得更訊。

原始碼 2.3: Checking USE flag settings and rebuild

(測試USE-flag和查閱哪些套件必須要被更新)
# emerge --pretend --verbose --update --newuse --deep apache subversion \
mod_php mod_bandwidth mod_layout mod_ldap_userdir mod_loopback mod_mp3 \ 
mod_random mod_throttle mod_watch

(更新套件)
# emerge --verbose --update --newuse --deep apache subversion mod_php \
mod_bandwidth mod_layout mod_ldap_userdir mod_loopback mod_mp3 mod_random \
mod_throttle mod_watch

(更簡單的方式就是直接全部都更新)
# emerge --ask --verbose --update --newuse --deep world

現在您需要重新設定您的Apache和相關的模組。請由etc-updatedispatch-conf 來更新/etc/init.d/etc/conf.d中的檔案。您將會注意到 Apache的設定檔並不會在更新清單中顯示 - 這是因為設定檔被更動了。

如果您有更動過前一版的apache.confcommonapache.conf 您將會需要將他改變到/etc/apache{|2}/httpd.conf中。而且模組和虛擬伺服器(vhost) 的相關設定檔也已經變更 -- 他們現在被移動到/etc/apache2/modules.d/etc/apache2/vhosts.d中。

當您把舊版本的設定檔都更新的新的上面後,您需要刪除舊的設定檔(或是將他們移動到 其他地方去)。新的設定檔/etc/init.d/apache{|2}會去檢測舊的設定檔 ,如果還在將不會讓您啟動Apache,直到您將就的設定檔移走(mv)。

注意: 有很多的模組原本是被開啟的但是更新後變成關閉的。如果那些是Apache內建的模組,可以 在httpd.conf 取消註解。如果是外部的模組,請參考模組的設定檔IfDefine並且在 /etc/conf.d/apache{|2}啟動他。

現在可試試看重新啟動apache。

原始碼 2.4: Restarting apache

# /etc/init.d/apache stop
# /etc/init.d/apache start

如果您遇到任何問題可以參考Apache 解決問題聖經 ,如果上面不能解決您的問題,請回應到 Gentoo Bugzilla。 請確認您已經啟動相關的模組(如果您使用Apache2)並且注意有哪些MPM USE-flag 您在編譯時 加進去。您也許會想加入在IRC上面的 #gentoo-apache頻道來尋求支援,此頻道設立於

3.  Apache支援的USE-flag

下面有列出USE-flag對應到相關的apache和模組。Apache支援一些通用的USE-flag例如 ssl ,但是這次更動對於其他與Apache不相關的套件並沒有太大的關係,所以並沒有放在下面 清單中。請執行emerge --verbose --pretend apache來查閱所有的USE-flag清單。

USE-flag Packages(套件) Description(描述)
apache2 depend.apache eclass (all modules) 如果使永Apache-2.0應該使用這個flag,如果沒有將會安裝Apache-1.3。請確認 您要安裝的版本來選擇。
mpm-leader apache-2* 安裝leader MPM
mpm-metux apache-2* 安裝metux MPM
mpm-peruser apache-2* 安裝peruser MPM
mpm-prefork apache-2* 安裝prefork MPM
mpm-threadpool apache-2* 安裝 threadpool MPM
mpm-worker apache-2* 安裝 worker MPM
no-suexec apache 取消安裝對於suexec相關的模組(對於那些不想要suid在系統上的使用者)
static-modules apache 靜態的連結模組到Apache的執行檔中,如此可以讓LoadModule沒作用。 Apache.
lingerd apache-1* 增加對於 lingerd的支援。
no-htdocs gentoo-webroot-default 關閉安裝預設的webroot到/var/www/localhost中,如此會讓原本在 其中的檔案不會被覆蓋過去。然而webroot會被改安裝到/usr/share/doc/gentoo-webroot-default-*/webroot/中。

注意: 有很多的 mpm-* USE-flags是互斥的。您應該只啟動一個mpm-* USE-flags。(如果您不啟動他 ,mpm-prefork或mpm-worker將會被啟動,這是依照 USE-flag來設定的。)



列印

最後更新 2005年 8月 1日

這份文件的原始版本已不再被維護

大綱: 這份文件提供給想要已經安裝apache的使用者安全升級的一些步驟指引。

Michael Stewart
Author

Frid Hou
Translator

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Bytemark

Bytemark

Linux World Expo

Linux World Expo

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.