这适用于共享配置文件,如果存在,则应该包含另一个文件,否则仍然有效。如果我做
Include foo.conf
并且foo.conf不存在,apache会抱怨:
could not open document config file /etc/httpd/conf/foo.conf
答案 0 :(得分:56)
我提出了一个聪明的解决方案,尽管可能有更好的方法。将其中一个字符放在括号中,以便Apache将其视为glob模式,允许匹配零文件而不会导致错误。 E.g:
Include foo.con[f]
答案 1 :(得分:37)
根据http://httpd.apache.org/docs/2.4/mod/core.html#include,您可以使用“IncludeOptional”:
或者,如果缺少文件或目录,将忽略以下命令:
IncludeOptional conf / vhosts / * / * .conf
答案 2 :(得分:4)
IncludeOptional foo.conf
Apache httpd版本2.3.6及更高版本
https://httpd.apache.org/docs/2.4/mod/core.html#includeoptional
答案 3 :(得分:2)
我和Wouter Van Vliet一样,但我仍然有错误。然后我找到了this link。我将此代码段添加到我的 /etc/apache2/apache2.conf 中,它就像一个魅力!
注意:你需要 mod_perl !
以下是代码:
<perl>
use File::stat;
foreach $file (glob '/srv/www/vhosts/*/conf/vhost.conf') {
my $stat = stat($file);
if ($stat->uid != 0 || $stat->gid != 0) {
warn "$file is not owned by root:root, skipping!\n";
next;
}
if ($stat->mode & 0002) {
warn "$file is world-writable, skipping!\n";
next;
}
push @Include, $file;
}
</perl>