亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

Apache模塊 mod_so

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

概述

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

在Unix上,被加載的可執(zhí)行代碼通常來自于共享對象文件(一般以.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對于Unix和Windows是一樣的。許多模塊在這兩個平臺間移植幾乎不需要什么修改,除非那些依賴于Unix特定屬性而Windows沒有提供的模塊。

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

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

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

module foo_module;

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

module AP_MODULE_DECLARE_DATA foo_module;

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

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

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

top

LoadFile 指令

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

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

例如:

LoadFile libexec/libxmlparse.so

top

LoadModule 指令

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

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

LoadModule status_module modules/mod_status.so

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