我想在Apache服務器的配置文件httpd.conf
中定義一個變量。如何在apache的httpd.conf文件中定義一個變量?
例:變量static_path = C:\codebase\snp_static
,我想在那裏曾經要求httpd.conf
使用這個變量(static_path)。
請告訴我如何在httpd.conf
文件中定義一個變量?
我想在Apache服務器的配置文件httpd.conf
中定義一個變量。如何在apache的httpd.conf文件中定義一個變量?
例:變量static_path = C:\codebase\snp_static
,我想在那裏曾經要求httpd.conf
使用這個變量(static_path)。
請告訴我如何在httpd.conf
文件中定義一個變量?
如果你想要的只是httpd.conf中的簡單變量替換,那麼爲運行Apache的用戶定義一個普通的shell環境變量,然後使用$ {ENVVAR}語法在httpd.conf文件中引用它,看到Apache docs
在的httpd.conf,聲明你的變量(S)與:Define
(最好在第一行)
語法:Define
variable-name
variable-value
這樣:
#The line below creates the variable [static_path]
Define static_path C:/codebase/snp_static
以後,您可以使用這個變量,像這樣:
ServerRoot = ${static_path}
...
DocumentRoot = ${static_path}
...
<Directory ${static_path}>
...etc.
你甚至可以將多個變量:
#Below, I am going to combine variables [server_space] and [static_path]
Define server_space c:/
Define static_path codebase/snp_static
...
ServerRoot = ${server_space}${static_path}
...
DocumentRoot = ${server_space}${static_path}
...
<Directory ${server_space}${static_path}>
...etc.
mod_define默認情況下不包含在Apache 2.2中 – craigrs84
舊的原件(與2.0和2.2兼容) mod_define在http://people.apache.org/~rjung/mod_define/mod_define.html – reallynice
這絕對是在httpd conf文件中定義變量的理想方式。我確實希望apachectl的人們偶然發現這個問題。 –
Apache2.4我研究了它,這裏是對我有用。 和使用httpd_z.exe -t -D DUMP_RUN_CFG
RESULTS:::
ServerRoot: "C:/path/core/apache2"
Main DocumentRoot: "C:/path/apache/htdocs"
Main ErrorLog: "C:/path/core/apache2/logs/error.log"
Mutex rewrite-map: using_defaults
Mutex default: dir="C:/path/core/apache2/logs/" mechanism=default
PidFile: "C:/path/core/apache2/logs/httpd.pid"
Define: DUMP_RUN_CFG
Define: US_ROOTF=C:/path **THIS IS THE ROOT PATH VARIABLE I JUST MADE**
Define: php54
#<IfDefine TEST>
# Define servername test.example.com
#</IfDefine>
#<IfDefine !TEST>
# Define servername www.example.com
# Define SSL
#</IfDefine>
#DocumentRoot /var/www/${servername}/htdocs
<IfDefine US_ROOTF>
Define US_ROOTF C:/PATH **The path i want the variable for**
</IfDefine>
<IfDefine !US_ROOTF>
Define US_ROOTF C:/PATH **The path i want the variable for**
# Define SSL
</IfDefine>
#DocumentRoot /var/www/${servername}/htdocs OPTIONS ON HOW TO USE
EXAMPLE of use
ServerRoot = ${US_ROOTF}
<IfDefine php54>
LoadFile "${US_ROOTF}/core/php54/icudt53.dll"
PHPIniDir "${US_ROOTF}/core/php54/php_production.ini"
有人告訴我從來沒有服事到互聯網時使用直接硬路徑任何總是使用變量來幫助保護您的系統進行測試。
我發現這是如此真實的難題。現在我終於想出瞭如何爲所有使用Apache的服務設置變量。
希望它可以幫助你。
從管理的角度來看,當你需要刪除舊路徑時,它使得使用變量更新和維護服務器變得更容易,而不是在http.conf的每一行(以及任何其他地方適用)以及安全性(適用時) – Omar
檢查響應例如:http://stackoverflow.com/questions/6343621/conditions-in-apache/6346407#6346407 – regilero