Brief
在部署Httpd時為方便管理和安全等原因,我們僅會安裝所需的模塊,那么后期功能擴展時則需要通過Httpd內置提供的apxs程序來進行模塊添加。
而apxs程序則位于apache/bin目錄下。
Premise
首先我們的平臺必須支持DSO特性,而且Httpd必須已經內建了mod_so模塊。
DSO(Dynamic Shared Object,動態共享對象)
是一種動態連接/加載的機制,從而可以在運行時將編譯成特殊格式的代碼加載到可執行程序的地址空間。然后通過mod_so提供的LoadModule指令在運行時加載到Httpd服務器中。
mod_so模塊
作用:運行時加載DSO模塊(Httpd進程啟動時可加載DSO模塊來擴展功能)
后綴:.so或.dll
檢查是否已內建mod_so模塊: > httpd -l | grep mod_so
Install module by apxs
apxs的全稱為APache eXtenSion作為Httpd服務器編譯和安裝擴展模塊的工具,用于編譯一個或多個程序或目標代碼文件為動態共享對象。
> apxs -i -a -c <file>
<file>可以是C源碼文件(.c)、地址獨立的目標代碼文件(.o)甚至是一個庫(.a)。
Httpd默認支持的模塊C源碼文件位于apache/modules/metadata/目錄下,如mod_headers.c (若要配置請求頭、響應頭的信息必須通過它)
> /app/apache/bin/apxs -i -a -c /app/apache/modules/metadata/mod_headers.c 執行后在/app/apache/modules/下多了一個mod_headers.so文件
然后我們再在/app/apache/conf/httpd.conf中添加
LoadModule headers_module /modules/mod_headers.so <IfModule headers_module> Header add Access-Control-Allow-Origin * Header add Access-Control-Allow-Method "POST,GET,OPTIONS" </IfModule>
Thanks
http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/dso.html
http://blog.51yip.com/apachenginx/871.html
http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/programs/apxs.html
文章列表