我想配置我的 apache 不同。现在,如果缺少 DocumentRoots 之一,则所有服务器都无法启动。这很烦人。。
有什么选择,如何忽略这个错误?
我想配置我的 apache 不同。现在,如果缺少 DocumentRoots 之一,则所有服务器都无法启动。这很烦人。。
有什么选择,如何忽略这个错误?
基于您的 DocumentRoot 指令与 VirtualHost 同义使用的假设,您可以将 VirtualHosts 配置分离到单独的 conf 文件中,将它们单独放入其文档根目录中,然后将它们与目录范围的 include 指令一起包含在通用的服务器范围的 conf 中。请参阅下面的示例:
在下面的目录中创建一个conf:
/etc/apache/sites-enabled/sites.conf
添加以下内容
Include /data/www/sites/
这将包括上述目录和任何子目录中的任何 conf 文件
对于具有以下 DocumentRoot 的主机
/data/www/sites/website-one
创建一个 VirtualHost conf 文件并将其放在上述目录中,例如:
/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
目录和子目录中的任何错误 conf 文件都会导致服务器无法启动。