【问题标题】:Can you set Apache's DocumentRoot relative to the conf file?您可以相对于 conf 文件设置 Apache 的 DocumentRoot 吗?
【发布时间】:2015-03-22 01:44:33
【问题描述】:

设置apache2虚拟主机时,是否可以在.conf文件中引用.conf文件的路径?

如果我有这样的目录结构:

root/conf/vhost.conf
root/log/error.log
root/public/

我可以这样做吗:

<VirtualHost *:80>
  ...

  DocumentRoot ${THIS_CONF_FILE_PATH}/../public
  ErrorLog  ${THIS_CONF_FILE_PATH}/../log/error.log

  ...
</VirtualHost>

【问题讨论】:

    标签: apache apache2 httpd.conf


    【解决方案1】:

    当然你可以这样做,但为了简单起见,你应该将 ServerRoot 指令设置为你的根目录。例如,这样的东西看起来会更干净:

    ServerRoot /path/to/root    
    Include conf/*.conf
    ...
    

    您的 vhost.conf 文件可能如下所示:

    <VirtualHost *:80>
      ...
    
      DocumentRoot public
      ErrorLog log/error.log
    
      ...
    </VirtualHost>
    

    【讨论】:

    • 感谢您的提示。我应该备份一下并提到我正在尝试实现以下目标:vhost1/conf/vhost.conf vhost1/log/error.log vhost1/public/vhost2/conf/vhost.conf vhost3/log/error.log vhost4/public/ 我相信 ServerRoot 只能设置一次,这并不能真正让我按照我的计划去做。提醒我我正在做一些非正统的事情绝对有用。
    • 我想我理解你想要完成的事情。我相信您应该能够使用这样的语法来包含配置文件 Include /conf/.conf,但我没有看到硬编码虚拟主机 DocumentRoot 和错误路径有任何问题。你必须对 ServerName 和 ServerAlias 指令做同样的事情,所以为什么不重用字符串呢。
    猜你喜欢
    • 2015-11-14
    • 2019-08-15
    • 2010-10-17
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 2019-08-12
    • 2015-03-03
    • 2016-01-11
    相关资源
    最近更新 更多