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。

<<<返回技術中心

技術文章

站內新聞