首頁  >  文章  >  後端開發  >  linux下安裝apache指定安裝模組以及安裝後編譯載入其他模組

linux下安裝apache指定安裝模組以及安裝後編譯載入其他模組

伊谢尔伦
伊谢尔伦原創
2016-11-25 15:23:031244瀏覽

一、安裝apache時同時安裝mod_proxy模組

1.下載apache
本人下載的是httpd-2.2.12.tar.bz2,儲存到了/home/sxs/software下方。

2.解壓縮apache檔案
進入/home/sxs/software資料夾,執行:

# tar -xjf httpd-2.2.12.tar.bz2

將在/home/sxs/software下產生httpd-2.2.12資料夾。

如果下載的檔案後綴是tar.gz,需要用以下指令

# tar -xzf httpd-2.2.12.tar.gz

3.設定安裝目錄和參數
進入新解壓縮的httpd-2.2.12資料夾,執行:

# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=proxy

(一般網路上都是說./configure --prefix=/usr/local/apache,這裡是指定安裝mod_proxy模組,如何指定其他模組暫時不清楚,但是安裝好apache後可以透過第二部分加入模組)

4.編譯部署apache

# make WITH_PROXY_MODULES=yes //(网上文章一般都是直接:make)
# make install

5.在/usr/local將會看到apache資料夾,開啟httpd.conf文件,可以看到:

LoadModule proxy_module modules/mod_proxy.so

等程式碼,在modules資料夾下也可以看到對應的mod_proxy.so檔案。

預設linux下安裝apache是​​不安裝mod_proxy等模組的。

二、安裝apache後編譯載入其他模組

假定現在需要編譯載入mod_rewrite.so

1.進入解壓縮後的apache目錄,在第一部分是/home/sxs/software/httpd-2.2.12

2.找到要編譯的檔案

# find ./ -name mod_rewrite.c

3.進入mod_rewrite.c所在目錄

# cd modules/mappers

4.編譯mod_rewrite.c

# /usr/local/apache/bin/apxs -c mod_rewrite.c

5.安裝mod_rewrite模組

# /usr/local/apache/bin/apxs -ian rewrite mod_rewrite.la

# /usr/local/apache/bin/apxs -iac mod_rewrite.c

5.安裝mod_rewrite模組

$ httpd -l

註:以上4、5兩個步驟也可以合併為一個步驟

$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /path/to/apache/modules/mod_foo.so
chmod 755 /path/to/apache/modules/mod_foo.so
[activating module 'foo' in /path/to/apache/etc/httpd.conf]
$ apachectl restart
/path/to/apache/sbin/apachectl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/path/to/apache/sbin/apachectl restart: httpd started
$ _

註:

apxs是一個為Apache HTTP伺服器編譯和安裝擴充模組的工具,用於編譯一個或多個原始程式或目標程式碼檔案為動態共享對象,使之可以用由mod_so提供的LoadModule指令在執行時載入到Apache伺服器中。

因此,要使用這個擴充機制,你的平台必須支援DSO特性,而且Apache httpd必須內建了mod_so模組。

apxs工具能自動探測是否具備這樣的條件,你也可以自己用這個指令手動探測:

rrreee

該指令的輸出清單中應該有mod_so模組。如果所有這些條件都已具備,則可以輕鬆地借助apxs安裝你自己的DSO模組以擴展Apache伺服器的功能:

rrreee
其中的參數files可以是任何C原始程式檔案(.c)、目標程式碼文件(.o)、甚至是一個庫(.a)。 apxs工具會根據其後綴自動編譯C原始程式或連接 目標程式碼和函式庫。但是,使用預先編譯的目標程式碼時,必須保證它們是位址獨立程式碼(PIC),使其能被動態地載入。如果使用GCC編譯,則應使用 -fpic 參數;如果使用其他C編譯器,則應查閱其手冊,為apxs使用對應的編譯參數。

🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn