我想在 Apache 服务器的 httpd.conf配置文件中定义一个变量。
httpd.conf
例如: 变量 static _ path = C:\codebase\snp_static
C:\codebase\snp_static
并且我想在需要的地方在 httpd.conf中使用这个变量(static _ path)。
请告诉我如何在 httpd.conf文件中定义一个变量?
如果只需要在 httpd.conf 中进行简单的变量替换,那么为运行 Apache 的用户定义一个普通的 shell 环境变量,然后使用 ${ ENVVAR }语法在 httpd.conf 文件中引用它,参见 阿帕奇文件
在 Http://httpd.conf/中,用: Define声明变量(最好在第一行) 语法 : Define variable-name variable-value
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.
文档 : < a href = “ http://httpd.apache.org/docs/2.4/mod/core.html # Definition”rel = “ norefrer”> http://httpd.apache.org/docs/2.4/mod/core.html#define
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 的服务设置变量了。
希望对你也有帮助。
这个问题很晚才提出,但是最近遇到了这个问题,就这样解决了:
DEFINE path "C:\path/to the/directory"
然后像这样使用:
DocumentRoot ${ path } < 目录 ${路径} >
注意: 在路径使用后的驱动器号
如果您的 apache 项目没有采用我们添加到 bashrc 的系统环境变量, 我们可以直接将变量导出到 /etc/apache2/envars 文件
例如: export ADMIN = ‘ Bibin’