Apache忽略了丢失的DocumentRoot

时间:2012-04-08 16:58:29

标签: apache ubuntu configuration

我想配置我的apache不同。现在,如果缺少其中一个DocumentRoots,则所有服务器都无法启动。那很烦人..

有没有选项,如何忽略此错误?

在Ubuntu上......

谢谢

1 个答案:

答案 0 :(得分:1)

基于您的DocumentRoot指令与VirtualHost同步使用的假设,您可以将VirtualHosts配置分离到单独的conf文件中,将它们单独放入其文档根目录中,然后将它们包含在泛型中的目录范围包含指令中,服务器范围的conf。请参阅下面的示例:

在下面的目录中创建一个conf:

/etc/apache/sites-enabled/sites.conf

添加以下内容

Include /data/www/sites/

这将包括上述目录中的任何conf文件和任何子目录

对于具有以下DocumentRoot的主机

/data/www/sites/website-one

创建一个VirtualHost配置文件并将其放在上面的目录中,例如:

/data/www/sites/website-one/website-one.conf

您的conf文件将包含有关VirtualHost的所有信息,包括DocumentRoot,例如

<VirtualHost *:80>
DocumentRoot /data/www/sites/website-one
ServerName www.website-one.com

# Other directives here

</VirtualHost>

如果DocumentRoot不存在,则不会加载conf文件,并且永远不会执行DocumentRoot指令。出于安全考虑,请注意您的conf文件不会被解除引用。这应该在服务器级别禁用,但需要注意。最后,上述模式意味着/data/www/sites目录和子目录中的任何错误配置文件都将导致服务器无法启动。