[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 應用技術 > Apache > 正文
如何編譯配置Apache中的Configure
本文出自: http://cn.internet.com 仙人掌工作室 (2001-05-17 11:03:29)
    ./Configure文件是一個經常被遺忘的Apache工具。本文介紹如何用./Configure進行編譯配置,避免每次編譯Apache時進行重復的操作。文章比較了常規方法與使用./Configure這兩者各自的優缺點以及如何手工編輯配制文件進行編譯配置。

一、優缺點比較
   我們知道,配制Apache編譯選項使用的是configure。但除此之外,我們還可以使用Configure。注意兩者的差別:常用的那個配制工具是小寫c開頭的“configure”,這裡要討論的“Configure”以大寫的C開頭。 

   解開Apache源代碼之,configure腳本位頂級目錄下面。一般我們按照如下步驟使用它: 



      tar -zvxf apache_1.3.14.tar.gz

      cd apache_1.3.14

      ./configure --prefix=/usr/local/apache

      make

      make install

 
 


   Configure是位src子目錄下的腳本。它的參數不是通過命令行指定,而是在一個名為Configuration的配置文件中指定。Apache提供一個默認的配置模板文件Configuration.tmpl,其中包含了通用的默認配置值。 

   用Configure進行默認安裝的過程如下: 



      tar -zvxf apache_1.3.14.tar.gz

      cd apache_1.3.14/src

      cp -f Configuration.tmpl Configuration

      vi Configuration

      ... 如必要,修改默認配置值

      ./Configure

      make

      make install

 
 


  缺點 

   用Configure進行配制有幾個明顯的缺點,至少對初學者來說是這樣的。 

   首先,這種配制方法並不廣為人知。只要是對開放源代碼軟件有所了解的人,解開源代碼並進入它的目錄之,或許會對它的configure腳本感到熟悉,但往往不會進入src子目錄去尋找其他什東西。 

   即使知道可以用Configure進行編譯配制,Configuration文件本身也可能成為小小的障礙。這是因為,雖然Configuration文件內部包含的說明相當完善,每一行都有豐富的注解說明其作用,但這個文件實在過龐大,包含了許多大多數人永遠不想要加以定制的選項。 

   最,雖然有關這兩種配制方法差別的資料略顯缺乏,但總地看來初學者最好使用configure,而Configure只適合經驗豐富的用戶使用。雖然這並不能算是一個真正的缺點,但它無疑使許多用戶駐足而不敢嘗試。 

  優點 

   使用Configure進行編譯配制最大的優點在,它方便了我們將特定的配置信息保存下來以再用,無需記住冗長的configure命令行選項。 

   例如,本人上次編譯Apache時使用的configure命令如下: 



      ./configure --prefix=/usr/local/apache --enable-module=most

           --enable-shared=max --enable-module=auth_dbm 

           --enable-module=auth_mysql

 
 


   這還應該算是一次比較簡單的編譯。問題在,即使是輸入上面這行命令,我也要查看各種參數的語法並努力記住各個模塊的名字。對大多數人來說這並不是一個很重要的問題,但由我經常要重新構造Apache,這個問題就顯得比較突出了。 

   configure也有它的好處,它實際上會在src目錄下生成一個配制文件,我們可以保存這個文件供以參考。這個文件就是src/Configuration.apaci。 

   如果我們為測試目的構造Apache,完成又要在正式運行的系統上以完全相同的方式構造Apache,configure的這個功能將是非常有用的。此時,我們只需要復制一份Configuration.apaci文件,將它拷貝到正式運行的服務器上,然用這個文件編譯Apache服務器即可。 

   應當說明的是,雖然默認情況下配制選項由Configuration文件提供,但我們可以用-file參數指定另外的文件: 



      ./Configure -file Configuration.saved_prefs



二、手工編輯配制文件

   以前,指定編譯選項的唯一方法是手工編輯Configuration文件。當然,那時候我們還要步行上學,跋山涉水。這一切現在都已經過去。 

   不管怎樣,如果你準備直接使用Configuration文件,你就得仔細地了解一下它到底由什內容構成。Configuration文件中的大多數選項都是無需定制的,不過了解一下它們的用處是有好處的。 

   Configuration文件的前面是關本文件的一個簡短說明。下面摘錄了這部分內容並給出其譯文: 



      # There are 5 types of lines here:

      這裡共有5種類型的代碼行:

      # &single;#&single; comments, distinguished by having a &single;#&single; as the first non-blank character

     “#”注釋,以第一個非空字符為“#”區別

      #

      # Makefile options, such as CC=gcc, etc...

      Make文件選項,例如 CC=gcc,等等...

      #

      # Rules, distinguished by having "Rule" at the front. These are used to

      # control Configure&single;s behavior as far as how to create Makefile.

      規則,以前面的“Rule”區別,用控制Configure的行為以至

      如何創建Make文件

 

      #

      # Module selection lines, distinguished by having &single;AddModule&single; at the front.

      # These list the configured modules, in priority order (highest priority

      # last).  They&single;re down at the bottom.

      模塊選擇行,以前面的“AddModule”區別。這些行以優先級為序列出

      了已經配制的模塊(高優先級的在面)。模塊選擇在文件最進行。

      #

      # Optional module selection lines, distinguished by having `%Module&single;

      # at the front.  These specify a module that is to be compiled in (but

      # not enabled).  The AddModule directive can be used to enable such a

      # module.  By default no such modules are defined.

      可選模塊選擇行,以前面的“%Module”區別。這些行指定了必須

      編譯的模塊(但不啟用)。AddModule指令可以啟用這種模塊。默

      認不定義這種模塊。

 
 


   大多數用戶只需修改模塊選擇行,其他內容只適合深入了解其含義的用戶進行修改。在文件的最我們可以發現許多如下形式的行: 



      AddModule modules/standard/mod_cgi.o

 
 


   它表示本次編譯Apache應啟用指定的模塊(這裡是mod_cgi模塊)。我們可以用注釋掉相應行的方法來刪除特定的模塊;反之,如果取消已注釋行的注釋將啟用該模塊。 

   我們可以通過SharedModule指令(而不是AddModule)將模塊編譯成DSO(共享對象,shared object): 



      SharedModule modules/standard/mod_vhost_alias.so

 
 


   注意在編譯DSO時必須啟用mod_so模塊。 

   用configure生成Configuration.apaci文件,然檢查其改動之處是一種很好的學習方法。 

   一旦在Configuration文件中完成了所有必須的改動,只需運行./Configure即可開始編譯過程。 

三、使用哪種方法好?

   顯然,使用configure和使用Configure都有著各自強硬的支持者,但可以相信每一種觀點都有其派別和歷史的原因。 

   我們建議兩種方法都用。用configure生成Configuration文件,閱讀這些文件了解其作用,然保存其中的部分文件供以在Configure命令中使用。 

   如果你打算只進行默認安裝,而且從來沒有想到過要改變任何一個選項,那使用哪一種方法進行配制就無關緊要了


(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章

======
 

★  樊強制作 歡迎分享  ★