作者 主題: 請教在編譯安裝 apache 時的小觀念  (閱讀 1521 次)

0 會員 與 1 訪客 正在閱讀本文。

b90220208

  • 鑽研的研究生
  • *****
  • 文章數: 557
    • 檢視個人資料
請教在編譯安裝 apache 時的小觀念
« 於: 2005-05-17 21:31 »
:D 在 apache 文件中的安裝 php 有提到:
首先 copy libphp3.a 到 ../apache_1.3.X/src/modules/php3/ 目錄下,然後執行如下:
-------------------------------------------------------------------------------------------------------
$ cd ../apache_1.3.X
$ ./configure --prefix=/path/to/apache  --activate-module=src/modules/php3/libphp3.a
$ make
$ make install
-------------------------------------------------------------------------------------------------------
Q1. 文件說這是選擇性的,請教這一段主要是作什麼用的(功能)?


Q2.  請教 --add-module 與 --activate-module 有何不同?
我看了文件中的說明,其二者皆提到是用來引入 third-party module ,
唯一的不同只有:
 --add-module 會自動完成模組的 activated 與 enabled
--activate-module 則只是 enabled third-party module


Q3.  httpd.conf 中的 LoadModule 與 AddModule 各為何意義?
何者為啟用與停用模組時需用到的?

b90220208

  • 鑽研的研究生
  • *****
  • 文章數: 557
    • 檢視個人資料
請教在編譯安裝 apache 時的小觀念
« 回覆 #1 於: 2005-05-18 10:14 »
上偏疑問已有小領悟了,
再請教:

1.
既然每個 distribution (RedHat, Fedora, Debian...) 等的 PHP config 檔可能都預設放在不同的位置,
若我安裝編譯php時沒有作 --with-config-file-path 的動作,程式是否會以預設值取代,若會,則該預設路徑會依不同 linux distribution 而不同嗎...還是統一路徑 : /usr/local/lib 呢?


2.
還有就是在安裝編譯 apache 時的參數選項: --enable-suexec ,您的意思是說這通常是偏功能面的,且非內建於套件裏的東西的慣例,那麼以本立的 suexec 來說,其設計者為何不以 module 的方式來支援 apache ,讓user可如一般標準內建模組一樣,以 --enable-module 來啟用呢?
ps. 我寫的可能很白痴,其實我只是想問當研發人員要讓 apache 有特定功能時,如何決定要以 module 或者如 suexec 的方式來支援 apache 呢?


3.
在 apache 文件中的安裝 php 有提到:
首先 copy libphp3.a 到 ../apache_1.3.X/src/modules/php3/ 目錄下,然後執行如下:
----------------------------------------------------------------------------------
$ cd ../apache_1.3.X
$ ./configure --prefix=/path/to/apache --activate-module=src/modules/php3/libphp3.a
$ make
$ make install
----------------------------------------------------------------------------------
3-1.
文件說這是選擇性的,請教這一段主要是作什麼用的(功能)....會這樣問是因:
文件中說這是"選擇性"的,且不是只要執行:
$ cd /path/to/php-3.0 source
$ .configure --with-apache=/path/to/apache source 就已經將 php 以 apache 的 static module 安裝了嗎?

3-2.
libphp3.a ,請問.a通常是屬於何種用途的檔案?


4.
請教 --add-module 與 --activate-module 有何不同?
我看了文件中的說明,其二者皆提到是用來引入 third-party module ,
唯一的不同只有:
--add-module 會自動完成模組的 activated 與 enabled
--activate-module 則只是 enabled third-party module

哪一個會牽動到在 httpd.conf 中的 LoadModule 與 AddModule 的加入 ?


5.
httpd.conf 中的 LoadModule 與 AddModule 各為何意義?
何者為啟用與停用模組時需用到的?


6.
最後一個問題,由於我非資訊領域學生,請教 library 是什麼? (概念)

b90220208

  • 鑽研的研究生
  • *****
  • 文章數: 557
    • 檢視個人資料
請教在編譯安裝 apache 時的小觀念
« 回覆 #2 於: 2005-05-22 11:07 »
:oops: sorry,上偏疑問已有小領悟了,
但有些細節仍不太清楚:

Q1.
因為./configure有以下看來很像的參數選項,且其文件的解釋也不是很易懂,我列出如下:
------------------------------------------------------------------------------------------------------------------
(1). --add-module=FILE --> The added module(simple third-party) is automatically "activated" and "enabled" .
(2). --activate-module=FILE --> The module(complex third-party,例如:mod_php3,mod_perl) is automatically "enabled".
(3). --enable-module=NAME --> to "enable" a already distributed module from the Apache src/Configuration.tmpl file.
------------------------------------------------------------------------------------------------------------------

第三項我較了解,就是將src/Configuration.tmpl裡頭"預設"被註解掉的模組給安裝編譯起來.

1-1.
但是,第一與第二項,我只知道是針對: 非官方認定的標準內建的模組,但他解釋的"activated","enabled"(我用紅色標註的)又有何差別啊?

1-2.
文件中皆有提到這句話: add an entry for an existing module object or library file into the configuration file on-the-fly.
意思是說會即時地在 src/configuration 檔案中加上對應模組的 AddModule 一行嗎?



Q2.
至於httpd.conf 中的 LoadModule 與 AddModule,依您的解釋,
是不是表示針對某特定模組時,在 httpd.conf 中可以有 AddModule 而無 LoadModule 反之則不行...對嗎?



Q3.
我已知:
只要有做 --enable-module 就會自動在 httpd.conf 中加上對應模組的 LoadModule 與 AddModule .
我想問的是:
若作了以下兩項,那麼在 httpd.conf 中相對應模組的 LoadModule 與 AddModule 也會被自動加上嗎?
--add-module
--activate-module