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文件所在目錄:
[root@localhost.localdomain ~/]#cd /usr/local/soft/httpd-2.2.8/modules/filte r
4. 利用apxs文件編譯目標模塊
[root@localhost.localdomain /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即可:
[root@localhost.localdomain ~]#/usr/local/apache2/bin/apachectl restart
如果在上述第二步中發現模塊文件已經存在,則不需要再編譯模塊,手工修改httpd.conf,重啟Apache即可
