欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

<-
Apache > HTTP Server > 文檔 > 版本2.2 > 模塊
   致謝 | 譯者聲明 | 本篇譯者:金步國 | 本篇譯稿最后更新:2006年1月29日 | 獲取最新版本

Apache模塊 mod_so

說明允許運(yùn)行時(shí)加載DSO模塊
狀態(tài)擴(kuò)展(E)
模塊名so_module
源文件mod_so.c
兼容性在Windows上這是一個(gè)基本模塊(始終包含)

概述

該模塊在支持動(dòng)態(tài)鏈接機(jī)制的操作系統(tǒng)上可以用來在Apache啟動(dòng)和重啟時(shí)加載DSO模塊,而不用重新編譯。

在Unix上,被加載的可執(zhí)行代碼通常來自于共享對(duì)象文件(一般以.so為擴(kuò)展名),在Windows上則為.so.dll擴(kuò)展名。

警告

用于Apache1.3的模塊不能直接用于Apache2.0 。

top

為Windows創(chuàng)建可加載模塊

注意

從Apache1.3.15開始,Windows上的模塊名規(guī)則發(fā)生了變化,現(xiàn)在使用mod_foo.so格式的名字。

Apache模塊的API對(duì)于Unix和Windows是一樣的。許多模塊在這兩個(gè)平臺(tái)間移植幾乎不需要什么修改,除非那些依賴于Unix特定屬性而Windows沒有提供的模塊。

如果一個(gè)模塊可用,那么有兩種方法使用它。在Unix上,可以被靜態(tài)編譯進(jìn)服務(wù)器。因?yàn)橛糜赪indows的Apache并沒有相應(yīng)于Unix下的Configure編譯配置程序,模塊的源文件必須被加進(jìn)ApacheCore項(xiàng)目文件,并且它的符號(hào)(symbols)必須被添加到os\win32\modules.c文件。

第二種方法是編譯為一個(gè)動(dòng)態(tài)鏈接庫(DLL),以便在運(yùn)行期間使用LoadModule指令加載。這些模塊DLL在Apache安裝期間就已經(jīng)安裝好了,不需要你自己去編譯。

為了將模塊編譯為DLL,需要對(duì)模塊的源文件做一個(gè)小小的修改:模塊記錄(module record)必須從DLL導(dǎo)出(稍后將會(huì)創(chuàng)建,見下)。為了達(dá)到這個(gè)目的,請(qǐng)將AP_MODULE_DECLARE_DATA(在Apache頭文件中定義的)添加到你的模塊記錄(module record)定義中。比如,如果你的模塊有:

module foo_module;

將上述內(nèi)容替換為:

module AP_MODULE_DECLARE_DATA foo_module;

注意,這僅在Windows上有效,因此該模塊可以不加修改的直接在Unix上使用。另外,如果你對(duì).DEF文件很熟悉,你也可以使用它代替前面的方法導(dǎo)出該模塊。

要?jiǎng)?chuàng)建一個(gè)包含該模塊的DLL文件,你還必須將它連接到在編譯libhttpd.dll共享庫時(shí)創(chuàng)建的libhttpd.lib導(dǎo)出庫。你還可能需要修改編譯器設(shè)置以確保Apache頭文件被正確的加載了。這些庫位于服務(wù)器根目錄下的"modules"目錄中。最好是從中抓出一個(gè)已經(jīng)存在的模塊.dsp文件來看看以確保編譯環(huán)境配置無誤,或者按照.dsp文檢查編譯器和連接器的選項(xiàng)也可。

這樣將會(huì)為你的模塊創(chuàng)建一個(gè)DLL版本。只要將它放置到modules目錄下,并使用LoadModule指令加載即可。

top

LoadFile 指令

說明加載已命名的目標(biāo)文件或庫
語法LoadFile filename [filename] ...
作用域server config
狀態(tài)擴(kuò)展(E)
模塊mod_so

該指令用于在服務(wù)器啟動(dòng)或者重啟時(shí)加載已命名目標(biāo)文件或庫,以用于加載需要被某些模塊使用的額外代碼。Filename可以是一個(gè)絕對(duì)路徑或者相對(duì)于ServerRoot的相對(duì)路徑。

例如:

LoadFile libexec/libxmlparse.so

top

LoadModule 指令

說明加載目標(biāo)文件或庫,并將其添加到活動(dòng)模塊列表
語法LoadModule module filename
作用域server config
狀態(tài)擴(kuò)展(E)
模塊mod_so

該指令加載目標(biāo)文件或庫filename并將模塊結(jié)構(gòu)名module添加到活動(dòng)模塊列表。module就是源代碼文件中用于拼寫module的外部變量名,并作為模塊標(biāo)識(shí)符(Module Identifier)列在模塊文檔中。例如:

LoadModule status_module modules/mod_status.so

加載了位于ServerRoot下模塊目錄中指定的模塊。