httpd.conf 設定內容﹕
作者: 日京三子
-------------------
StartServers 8
# 系統預設服務機器人數量,如果沒必要別修改
MaxClients 150
# 系統提供最大服務數量,如果遇到「砍站程式」通常會破百...
MaxRequestsPerChild 100
# 最大系統同時回應服務數,越大CPU_LOADING會越恐怖...
LoadModule cgi_module modules/mod_cgi.so
# 想跑Perl或CGI的話,請啟始上面這一行吧(最基本系統要求!)
#LoadModule put_module modules/mod_put.so
# 有些程式需要特別的PUT函式呼叫,如果您遇到這種特別的CASE,請啟始這行!
LoadModule perl_module modules/libperl.so
LoadModule php_module modules/mod_php.so
LoadModule php3_module modules/libphp3.so
LoadModule php4_module modules/libphp4.so
LoadModule dav_module modules/libdav.so
LoadModule roaming_module modules/mod_roaming.so
LoadModule ssl_module modules/libssl.so
AddModule mod_perl.c
AddModule mod_php.c
AddModule mod_php3.c
AddModule mod_php4.c
AddModule mod_dav.c
AddModule mod_roaming.c
AddModule mod_ssl.c
# 上面這幾行是系統預設會執行的,因為族繁不及備載,就不一一說明了,反正檢查一下就好!
DocumentRoot "/var/www/html"
# 系統預設目錄
# 這是定義,系統主目錄的位置,如果要修改請連帶的修改上面那行!
UserDir public_html
# 使用者個人目錄位置,就像是/home/test/public_html這樣,喜歡的話就修改成別的吧!
#
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#
# Order allow,deny
# Allow from all
#
#
# Order deny,allow
# Deny from all
#
#
# 這是限制在個人目錄裡面能做的事情,如果對系統有要求的話,加上對系統的安全性會比較高!
# 但是,如果連系統運作都不正常的話,請先不要加上限制,確定能運作之後再來!
ErrorLog /var/log/httpd/error_log
#發生不明錯誤時,紀錄檔的所在位置
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# 系統定義,在http://www.domain.com/cgi-bin/xxx.pl所執行的位置
# 唯一特別的是,這是採用ScriptAlias的方式讓APACHE知道目標位置
# 但是,為甚麼這地方能夠執行CGI呢?請看下面這行
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
# 原來,這地方定義了說,「只要在這目錄底下的檔案,一律視為CGI來執行
# (因為Options ExecCGI)」所以在後面「開放使用者執行權限」的地方,我
# 也將會像這地方一樣宣告。
#########################################
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
# 讓APACHE能夠辨識檔案種類,我在這邊自己加入了「.pl」這種形式。
########################################
# If the perl module is installed, this will be enabled.
Alias /perl/ /var/www/perl/
SetHandler perl-script
PerlHandler Apache::Registry
Options +ExecCGI
# 如果在上面有執行mod_perl.c的話,這邊的函式才會執行。
# 當然,在等會兒的地方,我們一樣要照抄不誤...
#########################
Include conf/mod_perl.conf
ScriptAliasMatch ~(.*)/(cgi-bin/.*) "/home/$1/public_html/$2/"
# 我在這上面分別告訴apache說,我還要特別載入mod_perl.conf這個設定檔
# 因為我喜歡將這個部分獨立出來處理。
# 順便在後面定義了,使用者的cgi-bin的目錄。請特別注意,我是使用ScriptAliasMatch
# 的函式,基本上這只是說明,如果您想要換地方的話,請自行動手... 但是要跟我在
# mod_perl.conf裡面所定義相符合才行...
#########################
# 以下就是我的mod_perl.conf內容
#########################
LoadModule perl_module /usr/lib/apache/libperl.so
AddModule mod_perl.c
SetHandler perl-script
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
AllowOverride None
PerlHandler Apache::Registry
PerlSendHeader On
Options +ExecCGI
#########################
# 說實在的,我也搞不懂為甚麼在cgi-bin的地方是宣告Options ExecCGI,但是在perl的部分
# 卻又是宣告成Options +ExecCGI,這個「+」到底有甚麼玄機就請四方大德告知啦...
--
附 1﹕
----- Original Message -----
From: dwight
To:
Sent: Sunday, June 24, 2001 1:37 AM
Subject: apache那篇文章
原文最後一段:
# 說實在的,我也搞不懂為甚麼在cgi-bin的地方是宣告Options ExecCGI,但是在perl的部分
# 卻又是宣告成Options+ExecCGI,這個「+」到底有甚麼玄機就請四方大德告知啦...
那個+ 是指加入前一層目錄的設定之意
比方說前一層的 Options 有FollowSymLinks
如果沒有加號,這一層設定會是ExecCGI
如果有,就是FollowSymLinks 跟 ExecCGI
|