1. 程式人生 > >用APXS編譯Apache模組

用APXS編譯Apache模組

apxs 是Apache的擴充套件工具,用於編譯一個或多個源程式或目的碼檔案為動態共享物件,使之可以用LoadModule指令在執行時載入到Apache 伺服器中。

apache安裝時—enable-so 引數必須新增上

./configure --prefix=/usr/local/apache2  --enable-so

make && make install

1.進入apache原始碼的modules目錄

cd /usr/local/src/httpd-2.2.17/modules/

2.執行如下命令自動編譯、安裝和修改httpd.conf檔案,啟用mod_proxy模組

/usr/local/apache2/bin/apxs -c -i -a proxy/mod_proxy.c proxy/proxy_util.c

選項說明:
-c 執行編譯操作
-i 安裝操作,安裝一個或多個動態共享物件到伺服器的modules目錄
-a 自動增加一個LoadModule行到httpd.conf檔案,以啟用此模組,若此行存在則啟用之
-A 與-a類似,但是它增加的LoadModule行前有井號字首(#)
-e 需要執行編輯操作,可與-a和-A選項配合使用,與-i操作類似,修改httpd.conf檔案,但並不安裝此模組

3.如果還需要其他proxy模組如mod_proxy_http、mod_proxy_ftp,則單獨

/usr/local/apache2/bin/apxs -c -i proxy/proxy_http.c

/usr/local/apache2/bin/apxs -c -i  proxy/proxy_ftp.c

在/usr/local/apache2/conf/httpd.conf中會自動新增如下

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule proxy_module       modules/mod_proxy.so