Apache HTTP 伺服器版本 2.4
本文檔說明如何在 Novell NetWare 6.0 及更高版本下安裝、配置和運行 Apache 2.0。如果您發現任何錯誤,或希望以其他方式做出貢獻,請使用我們的 錯誤報告頁面。
錯誤報告頁面和 dev-httpd 郵件列表不提供用於回答有關配置或運行 Apache 的問題。在提交錯誤報告或請求之前,請先查閱本文檔、常見問題頁面和其他相關文檔主題。如果您仍然有問題,請將其發佈到 novell.devsup.webserver 新聞群組,在那裡許多 Apache 用戶都非常樂意回答有關在 NetWare 上使用 Apache 的新問題和晦澀問題。
本文檔的大部分內容假設您是從二進位發行版安裝 Apache。如果您想自己編譯 Apache(可能是為了幫助開發或追蹤錯誤),請參閱下面的 為 NetWare 編譯 Apache 部分。
Apache 2.0 設計用於在 NetWare 6.0 Service Pack 3 及更高版本上運行。如果您運行的是低於 SP3 的 Service Pack,則必須安裝最新的 適用於 C 的 NetWare 函式庫 (LibC)。
NetWare Service Pack 可在此處 獲得。
只要安裝了最新的 Service Pack 或最新版本的 適用於 C 的 NetWare 函式庫 (LibC),也可以在 NetWare 5.1 環境中運行適用於 NetWare 的 Apache 2.0。警告:適用於 NetWare 的 Apache 2.0 並非針對此環境,也未在此環境中進行測試。
有關最新版本 Apache 的資訊,請訪問 Apache 網頁伺服器 http://www.apache.org/。這將列出當前版本、任何更新的 Alpha 或 Beta 測試版本,以及鏡像網站和匿名 FTP 網站的詳細資訊。可以從 此處下載適用於 NetWare 的 Apache 2.0 最新版本的二進位版本。
目前沒有適用於 NetWare 的 Apache 安裝程式。如果您要從原始碼構建適用於 NetWare 的 Apache 2.0,則需要手動將檔案複製到伺服器。
按照以下步驟從二進位下載安裝 Apache 到 NetWare(假設您將安裝到 sys:/apache2
)
SYS:
磁碟區的根目錄(可以安裝到任何磁碟區)httpd.conf
檔案,設定 ServerRoot
和 ServerName
以及任何檔案路徑值,以反映您正確的伺服器設定SYS:/APACHE2
新增到搜尋路徑,例如SEARCH ADD SYS:\APACHE2
按照以下步驟從您自己的構建原始碼手動將 Apache 安裝到 NetWare(假設您將安裝到 sys:/apache2
)
Apache2
的目錄APACHE2.NLM
、APRLIB.NLM
複製到 SYS:/APACHE2
SYS:/APACHE2
下建立一個名為 BIN
的目錄HTDIGEST.NLM
、HTPASSWD.NLM
、HTDBM.NLM
、LOGRES.NLM
、ROTLOGS.NLM
複製到 SYS:/APACHE2/BIN
SYS:/APACHE2
下建立一個名為 CONF
的目錄HTTPD-STD.CONF
檔案複製到 SYS:/APACHE2/CONF
目錄並重新命名為 HTTPD.CONF
MIME.TYPES
、CHARSET.CONV
和 MAGIC
檔案複製到 SYS:/APACHE2/CONF
目錄\HTTPD-2.0\DOCS\ICONS
中的所有檔案和子目錄複製到 SYS:/APACHE2/ICONS
\HTTPD-2.0\DOCS\MANUAL
中的所有檔案和子目錄複製到 SYS:/APACHE2/MANUAL
\HTTPD-2.0\DOCS\ERROR
中的所有檔案和子目錄複製到 SYS:/APACHE2/ERROR
\HTTPD-2.0\DOCS\DOCROOT
中的所有檔案和子目錄複製到 SYS:/APACHE2/HTDOCS
SYS:/APACHE2/LOGS
SYS:/APACHE2/CGI-BIN
SYS:/APACHE2/MODULES
並將所有 nlm 模組複製到 modules
目錄HTTPD.CONF
檔案,搜尋所有 @@Value@@
標記,並將它們替換為適當的設定SYS:/APACHE2
新增到搜尋路徑,例如SEARCH ADD SYS:\APACHE2
Apache 可以安裝到預設 SYS
磁碟區以外的其他磁碟區。
在構建過程中,將關鍵字 "install" 新增到 makefile 命令列將自動在子目錄 DIST
下產生一個完整的發行套件。只需將 makfiles 產生的發行套件複製到 NetWare 磁碟區的根目錄即可安裝 Apache(請參閱:下面的 為 NetWare 編譯 Apache)。
要啟動 Apache,只需在控制台中輸入 apache
。這將在作業系統位址空間中載入 apache。如果您希望在受保護的位址空間中載入 Apache,可以使用 load 語句指定位址空間,如下所示
load address space = apache2 apache2
這會將 Apache 載入到名為 apache2 的位址空間中。通過將每個實例載入到其自己的受保護位址空間中,可以在 NetWare 上同時運行多個 Apache 實例。
啟動 Apache 後,它將監聽埠 80(除非您更改了配置檔案中的 Listen
指令)。要連接到伺服器並訪問預設頁面,請啟動瀏覽器並輸入伺服器的名稱或位址。這應該會回應一個歡迎頁面,以及一個指向 Apache 手冊的連結。如果沒有任何反應或出現錯誤,請查看 logs
目錄中的 error_log
檔案。
基本安裝完成後,您應該通過編輯 conf
目錄中的檔案來正確配置它。
要卸載在作業系統位址空間中運行的 Apache,只需在控制台中輸入以下內容
unload apache2
或
apache2 shutdown
如果 apache 在受保護的位址空間中運行,請在 unload 語句中指定位址空間
unload address space = apache2 apache2
使用 Apache 時,了解它如何找到配置檔案非常重要。您可以在命令列上通過兩種方式指定配置檔案
-f
指定特定配置檔案的路徑apache2 -f "vol:/my server/conf/my.conf"
apache -f test/test.conf
在這些情況下,應在配置檔案中設定正確的 ServerRoot
。
如果您沒有使用 -f
指定配置檔案名稱,Apache 將使用編譯到伺服器中的檔案名稱,通常為 conf/httpd.conf
。使用 -V
參數調用 Apache 將顯示此值,標記為 SERVER_CONFIG_FILE
。然後,Apache 將按以下順序嘗試確定其 ServerRoot
-C
參數的 ServerRoot
指令。-d
參數。編譯到伺服器中的伺服器根目錄通常為 sys:/apache2
。使用 -V
參數調用 apache 將顯示此值,標記為 HTTPD_ROOT
。
適用於 NetWare 的 Apache 2.0 包括一組命令列指令,可用於修改或顯示有關正在運行的網頁伺服器實例的資訊。這些指令僅在 Apache 運行時可用。這些指令前面都必須加上關鍵字 APACHE2
。
預設情況下,這些指令是針對在作業系統位址空間中運行的 Apache 實例發出的。要針對在受保護位址空間中運行的特定實例發出指令,請包含 -p 參數以及位址空間的名稱。有關更多資訊,請在命令列上輸入 "apache2 Help"。
Apache 通過讀取通常儲存在 conf
目錄中的配置檔案來配置。這些檔案與用於配置 Unix 版本的檔案相同,但適用於 NetWare 的 Apache 有一些不同的指令。有關所有可用指令,請參閱 Apache 模組文檔。
適用於 NetWare 的 Apache 的主要區別是
由於適用於 NetWare 的 Apache 是多執行緒的,因此它不像 Apache 在某些 Unix 實現中那樣為每個請求使用單獨的進程。相反,只有執行緒在運行:一個父執行緒和多個處理請求的子執行緒或輔助執行緒。
因此,“進程”管理指令有所不同
MaxConnectionsPerChild
- 與 Unix 指令類似,這控制輔助執行緒在退出之前將服務多少個連接。建議的預設值 MaxConnectionsPerChild 0
會導致執行緒無限期地繼續服務請求。建議在 NetWare 上,除非有特殊原因,否則此指令始終保持設定為 0
。
StartThreads
- 此指令告訴伺服器最初應該啟動多少個執行緒。建議的預設值為 StartThreads 50
。
MinSpareThreads
- 此指令指示伺服器,如果閒置執行緒的數量低於此值,則產生額外的輔助執行緒。建議的預設值為 MinSpareThreads 10
。
MaxSpareThreads
- 此指令指示伺服器,如果閒置執行緒的數量超過此值,則開始終止輔助執行緒。建議的預設值為 MaxSpareThreads 100
。
MaxThreads
- 此指令將輔助執行緒的總數限制為最大值。建議的預設值為 ThreadsPerChild 250
。
執行緒堆疊大小 (ThreadStackSize)
- 此指令告訴伺服器每個工作執行緒要使用多大的堆疊。建議的預設值是 ThreadStackSize 65536
。
接受檔案名稱作為參數的指令必須使用 NetWare 檔案名稱而不是 Unix 名稱。但是,由於 Apache 內部使用 Unix 樣式名稱,因此必須使用正斜線而不是反斜線。建議所有根檔案路徑都以磁碟區名稱開頭。如果省略,Apache 會假設為 SYS:
磁碟區,這可能不正確。
適用於 NetWare 的 Apache 能夠在執行時期載入模組,而無需重新編譯伺服器。如果 Apache 是正常編譯的,它會在 \Apache2\modules
目錄中安裝許多可選模組。要啟用這些或其他模組,必須使用 載入模組 (LoadModule)
指令。例如,要啟用狀態模組,請使用以下指令
LoadModule status_module modules/status.nlm
也提供有關 建立可載入模組 的資訊。
CGI 映射擴展名 (CGIMapExtension)
- 此指令將 CGI 檔案擴展名映射到腳本直譯器。安全監聽 (SecureListen)
- 為指定的埠啟用 SSL 加密。NWSSLTrustedCerts
- 新增用於建立與代理伺服器的安全連線的可信憑證。NWSSLUpgradeable
- 允許在指定地址/埠上建立的連線升級為 SSL 連線。編譯 Apache 需要 MetroWerks CodeWarrior 6.x 或更高版本。建置 Apache 後,可以將其安裝到任何 NetWare 磁碟區的根目錄。預設目錄是 sys:/Apache2
。
在執行伺服器之前,您必須填寫 conf
目錄。從發佈的 conf
目錄複製檔案 HTTPD-STD.CONF
並將其重新命名為 HTTPD.CONF
。編輯 HTTPD.CONF
檔案,搜尋所有 @@Value@@
標記並將其替換為適當的設定。同時複製 conf/magic
和 conf/mime.types
檔案。或者,可以通過在調用 makefile 時包含關鍵字 install
來建置完整的發佈版本。
建置適用於 NetWare 的 Apache 2.0 需要以下開發工具
awk.exe
。NOVELLLIBC
設定為 NetWare Libraries for C SDK 的位置,例如Set NOVELLLIBC=c:\novell\ndk\libc
METROWERKS
設定為您安裝 Metrowerks CodeWarrior 編譯器的位置,例如Set METROWERKS=C:\Program Files\Metrowerks\CodeWarrior
C:\Program Files\Metrowerks\CodeWarrior
,則無需設定此項。LDAPSDK
設定為您安裝 LDAP Libraries for C 的位置,例如Set LDAPSDK=c:\Novell\NDK\cldapsdk\NetWare\libc
ZLIBSDK
設定為您安裝 ZLib 庫原始碼的位置,例如Set ZLIBSDK=D:\NOVELL\zlib
PCRESDK
設定為您安裝 PCRE 庫原始碼的位置,例如Set PCRESDK=D:\NOVELL\pcre
AP_WORK
設定為 httpd
原始碼目錄的完整路徑。Set AP_WORK=D:\httpd-2.0.x
APR_WORK
設定為 apr
原始碼目錄的完整路徑。通常是 \httpd\srclib\apr
,但 APR 專案可以位於 httpd 目錄結構之外。Set APR_WORK=D:\apr-1.x.x
APU_WORK
設定為 apr-util
原始碼目錄的完整路徑。通常是 \httpd\srclib\apr-util
,但 APR-UTIL 專案可以位於 httpd 目錄結構之外。Set APU_WORK=D:\apr-util-1.x.x
gmake.exe
) 的路徑已包含在系統的 PATH
環境變數中。\httpd-2.0
並通過執行 "gmake -f nwgnumakefile prebuild
" 來建置預建工具程式。此目標將建立目錄 \httpd-2.0\nwprebuild
並將完成以下建置步驟所需的每個工具程式複製到此位置。\httpd-2.0\nwprebuild\GENCHARS.nlm
和 \httpd-2.0\nwprebuild\DFTABLES.nlm
複製到 NetWare 伺服器的 SYS:
磁碟區,並使用以下命令執行它們SYS:\genchars > sys:\test_char.h
SYS:\dftables sys:\chartables.c
test_char.h
和 chartables.c
複製到建置機器上的目錄 \httpd-2.0\os\netware
。\httpd-2.0
並通過執行 "gmake -f nwgnumakefile
" 來建置 Apache。您可以通過在命令中新增 install 參數來建立發佈目錄,例如gmake -f nwgnumakefile install
gmake -f nwgnumakefile
建置所有二進位檔案的發行版本,並將它們複製到 \release
目標目錄。
gmake -f nwgnumakefile DEBUG=1
建置所有二進位檔案的偵錯版本,並將它們複製到 \debug
目標目錄。
gmake -f nwgnumakefile install
在 \dist\Apache2
目錄中建立完整的 Apache 發佈版本,其中包含二進位檔案、文件和其他支援檔案。
gmake -f nwgnumakefile prebuild
建置所有預建工具程式,並將它們複製到 \nwprebuild
目錄。
gmake -f nwgnumakefile installdev
與 install 相同,但還會在目標目錄中建立 \lib
和 \include
目錄,並複製標頭檔和匯入檔案。
gmake -f nwgnumakefile clean
從 \release.o
或 \debug.o
建置區域清除所有目標檔案和二進位檔案,具體取決於是否已定義 DEBUG
。
gmake -f nwgnumakefile clobber_all
與 clean 相同,並且還會刪除發佈目錄(如果存在)。
EXPERIMENTAL
Set EXPERIMENTAL=1
USE_STDSOCKETS
Set USE_STDSOCKETS=1
默認情況下,適用於 NetWare 的 Apache 使用內建模組 mod_nw_ssl
來提供 SSL 服務。此模組只是啟用 NetWare 作業系統中實現的原生 SSL 服務來處理給定埠的所有加密。或者,也可以像在其他平台上一樣使用 mod_ssl。
在為 NetWare 平台建置 mod_ssl 之前,必須提供 OpenSSL 庫。這可以通過以下步驟完成
NetWare/set_env.bat
並修改任何工具和工具程式路徑,使其與您的建置環境相對應。Netware\set_env netware-libc
Netware\build netware-libc
Netware\build netware-libc nw-nasm enable-mdc2 enable-md5
OSSLSDK
設定為 openssl 原始碼目錄根目錄的完整路徑,并将 WITH_MOD_SSL 設定為 1。Set OSSLSDK=d:\openssl-0.9.8x
Set WITH_MOD_SSL=1