使用apxs安裝apache模塊

使用apxs安裝apache模塊

                -——by石鍋拌飯


1.緣由

前幾天遷移系統,發現配置了fastcgi的一個腳本下載文件總是提示類似Connection reset by peer:FastCGI錯誤,後來發現應該是下載文件時間超過了fastcgi指定的idle-timeout導致的,這個時間默認是30秒,文件太大就容易超時。爲了解決這個問題,於是把下載文件的cgi腳本運行環境配置成cgi。

然而,坑爹的是,apache2.4.7已經默認採用mod_cgid模塊代替mod_cgi模塊,而mod_cgid模塊與我用的python的jon模塊有衝突,只好重新安裝mod_cgi模塊來替換掉mod_cgid模塊了。之前我是用源碼編譯的apache2.4.7,心想這回坑爹了,重新編譯apache搞掛線上系統環境就坑了。。還好,感謝萬能的互聯網,苦逼的查了一個小時,終於找到了一個不用重新編譯apache安裝新模塊的方法,於是乎,在測試機上測試後,就安裝到線上環境了,用mod_cgi模塊替代mod_cgid模塊後,與jon模塊完美兼容,可以成功下載文件了。


2.apxs工具添加模塊

首先當然是找到apache2.4.7的源碼,進入$APACHE_SRC_HOME/modules/generators目錄,會發現下面有mod_cgi.c文件,然後使用apxs工具編譯就行了(注意,如果是像我一樣源碼安裝的apache,那麼apxs工具已經自動安裝好了,在$APACHE_HOME/bin目錄下面)。

apxs編譯模塊命令:

$APACHE_HOME/bin/apxs -i -a -c mod_cgi.c

如果沒有報錯,那麼恭喜你,安裝成功了。可以到apache的modules目錄下看看有沒有mod_cgi.so這個文件,有的話就沒問題了。然後接下來就是修改httpd.conf文件了,將加載mod_cgid模塊的語句去掉,然後加上加載mod_cgi模塊的語句即可,如下所示:

#LoadModule cgid_module modules/mod_cgid.so 
LoadModule cgi_module modules/mod_cgi.so

最後,重啓apache就OK了。


3.參考資料

使用apxs工具給apache安裝模塊

發佈了121 篇原創文章 · 獲贊 133 · 訪問量 68萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章