一、apache模塊和apxs關係:html
apache是一個模塊化的軟件,能夠自由的選擇要使用的模塊,apache在編譯時能夠選擇被靜態編譯進主配置文件httpd裏面的,也能夠編譯成獨立於主配置文件httpd的動態共享對象模塊(DSO),DSO模塊能夠是在編譯服務器以後再手動編譯,也能夠用apache的擴展工具apxs來編譯:apache
apache一般有四層:服務器
第四層:使用apache開發的第三方庫:模塊化
第三層:可選的一些附加功能的模塊(mod_ssl,mod_perl),實現獨立的分離功能,這些模塊沒有一個是必須的,而且運行一個apache不須要任何一個此層的模塊:此層的模塊是互相依賴的:函數
第二層:這是apapche的基本功能庫,這層包括apapche的核心,http_core,實現http的基本功能,保持預生成子進程(per-forked)模型,處理請求進程等:工具
第一層:與OS平臺性應用函數,這些OS能夠是不一樣的unix, win3二、mac OS等:性能
apapche全部動態需編譯的模塊都創建在被靜態編譯進apapche核心的mod_so模塊的基礎上,這是惟一不能經過動態安裝的模塊:而其餘的模塊都可經過--enable-module=shared,被獨立編譯生效:.net
基於DSO的模塊擴展的優勢與缺點:unix
優勢:1: 更加靈活,因爲模塊的擴展能夠在運行時經過配置文件httpd.conf裏的LoadModule來進行,而不是在編譯時使用./configure來添加;rest
2: apache在安裝完成後使用第三方模塊被輕易的擴展,方便廠商維護,而且使用Apache模塊,使用DSO配置apxs,能夠脫離Apache源代碼樹,僅僅須要一個apxs -i和apache restart,就能夠把模塊新版本歸入運行中的Apache服務器:
缺點:並非全部的平臺都支持DSO,而且加載時須要大CPU開銷,下降性能:
擴展連接:apache dso https://yq.aliyun.com/articles/6298
二、apxs做爲一個apache安裝和編譯擴展模塊的工具,可是要使用這個擴展機制,你的平臺要支持DSO特性,並且apache必須內建了mod_os模塊,使用-l查看是否支持了這個模塊: /usr/local/apapche2.4/bin/apachectl -l
擴展:apache apxs http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/programs/apxs.html