Apache 2.2 新特性概述——針對模組開發者的變化

日期:2008-07-09  作者:喜騰小二  來源:PHPChina


APR 1.0 API
Apache2.2 使用 APR 1.0 API 。所有反對使用的函式和符號已經從 APRAPR-Util 中清除掉了。慾知詳情,請檢視APR 網站。
認證/授權(Authn/Authz)
原來捆綁在一起的認證和授權模組已經被按照下列規則進行了重新命名:
  • mod_auth_*    -> 實現HTTP認證機制的模組
  • mod_authn_*  -> 實現後端認證支援者的模組
  • mod_authz_*   -> 實現授權(或訪問)的模組
  • mod_authnz_* -> 同時實現認證和授權的模組
現在有一個新的認證後端提供者方案,可以簡化新認證後端的建立。
連線錯誤日誌
新增了一個新的ap_log_cerror函式用於記錄用戶端連線時發生的錯誤。並且在記錄時包含用戶端IP地址。
新增了一個測試配置的鉤子(hook)
新增了一個新的test_config 鉤子,可以在使用者嚮httpd傳遞 -t 選項時,執行包含特定程式碼的模組。
設定執行緒型MPM所使用的棧空間大小
新增的ThreadStackSize指令可以用來限制所有執行緒型MPM所使用的棧大小。一些預設棧空間較小的平臺上的協力廠商模組需要使用它指定棧空間的大小。
輸出篩選器協定處理
過去,每個篩選器都要確保自身能夠產生正確的應答頭。現在篩選器可以調用ap_register_output_filter_protocolap_filter_protocol來委託mod_filter進行協定管理。
新增了監視鉤子(Monitor hook)
監視鉤子可以讓模組執行父處理序中事先安排好的工作。
規則運算式 API 發生了變化
pcreposix.h頭檔案現在被ap_regex.h頭檔案取代了。原來老的POSIX.2 regex.h 實現現在位於ap_名字空間下(由ap_regex.h提供)。比如原來的regcomp, regexec調用現在要修改成ap_regcomp, ap_regcomp調用。
DBD框架(SQL資料庫API)

在1.x和2.0版本中,需要SQL支援的模組必須自己管理資料庫。為了不要重新發明輪子,Apache 2.1 及以後的版本提供了ap_dbd API 來管理資料庫連線(包括對執行緒型和非執行緒型MPM進行最佳化),同時 APR 1.2 及以後版本也提供了apr_dbd API 與資料庫打交道。

新模組應當使用了這些API來進行資料庫操作。現存的應用程式應當進行透明的升級或使用推薦選項來使用這些API。

<<<返回技術中心

技術文章

站內新聞