您可以相对于 conf 文件设置 Apache 的 DocumentRoot 吗?
Posted
技术标签:
【中文标题】您可以相对于 conf 文件设置 Apache 的 DocumentRoot 吗?【英文标题】:Can you set Apache's DocumentRoot relative to the conf file? 【发布时间】: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>
【问题讨论】:
【参考方案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 指令做同样的事情,所以为什么不重用字符串呢。以上是关于您可以相对于 conf 文件设置 Apache 的 DocumentRoot 吗?的主要内容,如果未能解决你的问题,请参考以下文章