標籤:
Apache已經安裝完畢並投入運行,但是後來卻發現部分模組沒有載入,當然有兩個方法:
1. 一是完全重新編譯Apache, 再安裝
2. 編譯模組為SO檔案,使用LoadModule指令載入擴充模組。
這裡只講第二個方法
情景:現在需要啟用Apache的deflate模組,即壓縮輸出,以加快網站下載,節省網路頻寬
伺服器 Red Hat AS 4
Aapache安裝在/usr/local/apache2/
Apache安裝源檔案儲存在/usr/local/soft/httpd-2.2.8/下
要求:載入mod_deflate.c模組,使Apache支援壓縮輸出
1. 現在檢查 /usr/local/apache2/conf/httpd.conf, 沒有發現類似:LoadModule deflate_module modules/mod_deflate.so
說明,Apache沒有載入此模組
2. 再檢查 /usr/local/apache2/modules/, 在此目錄下並沒有發現mod_deflate.so 檔案,說明此模組未被編譯好,那麼需要先編譯模組,再載入之
3. 先進入mod_deflate.c檔案所在目錄:
[roo[email protected] ~/]#cd /usr/local/soft/httpd-2.2.8/modules/filte r
4. 利用apxs檔案編譯目標模組
[[email protected] /usr/local/soft/httpd-2.2.8/modules/filters]#/usr/local/apache2/bin/apxs -i -c -a mod_deflate.c
說明:-i 安裝, -c 編譯指定模組 -a啟用模組(即向httpd.conf添加 LoadModule指令)
運行結果:
................
----------------------------------------------------------------------
chmod 755 /usr/local/apache2/modules/mod_deflate.so
[activating module `deflate‘ in /usr/local/apache2/conf/httpd.conf]
表示模組編譯後存放為 /usr/local/apache2/modules/mod_deflate.so, 並自動在httpd.conf中啟用了模組
那麼,我們現在檢查/usr/local/apache2/conf/httpd.conf, 會發現程式已經自動添加了
LoadModule deflate_module modules/mod_deflate.so
5. 那麼,我們重啟Apache即可:
[[email protected] ~]#/usr/local/apache2/bin/apachectl restart
如果在上述第二步中發現模組檔案已經存在,則不需要再編譯模組,手工修改httpd.conf,重啟Apache即可
為Apache動態增加模組