Apache以什么顺序加载conf文件,哪些加载?


10

我正在查看安装了Webframework的CentOS 6.5服务器,这些服务器多年来已经被添加到其中。/ conf中有5个活动的.conf文件,其中包括httpd.conf。

在httpd.conf中,包含读取

Include conf.d/*.conf

这样就可以抓取该目录中的所有文件,但是没有应用我知道的任何特定顺序,那么/ conf(无.d)目录又如何呢?

是否有设置说明加载顺序的设置?

我不是服务器管理员,我是开发人员,问题出在用于将文件上传到/ Temp目录的路径中,在该路径中,我检查了指定的路径是否适合我自己关心的文件。

因此,第一个问题是:

Apache是​​否从/ conf 加载所有内容,还是在某处指定了列表?

第二个问题是:

Apache按什么顺序按字母顺序加载文件?

最后:

是否包含不以.conf结尾的文件?例如,如果我命名为myconfig.conf.old,Apache会跳过吗?

Answers:


14

该顺序是字母顺序的。它仅加载包含路径指定的内容。在Include conf.d/*.confapache 的情况下,将加载名称以结尾的所有文件.conf

这是Apache文档的摘录:

Shell样式(fnmatch())通配符可用于按字母顺序一次包含多个文件。另外,如果Include指向目录而不是文件,则Apache将读取该目录和任何子目录中的所有文件。但是不建议包含整个目录,因为很容易将临时文件意外地保留在可能导致httpd失败的目录中。


谢谢,可以肯定地回答问题1和2。我虽然查看了Apache文档,但找不到答案。
chrtp 2014年

大致(配置项目的顺序会覆盖较早的项目)是正确的。当然,如果命令在同一配置部分中。但是例如,可以(使用AllowOverride)用.htaccess文件中的config覆盖配置项。
嫌疑犯2014年

抱歉,在看到您的评论之前,我已编辑了评论。在这种情况下,没有.htaccess,但是有一个以't'开头的文件将覆盖所有其他文件。我要重命名或移动文件。
chrtp 2014年

1
@chrtp,为什么以开头的文件t会覆盖所有其他文件?
Andrew Savinykh

1

Apache根据“ Include”指令加载额外的配置。它可能看起来像这样:

Include conf.d/*.conf

因此,很显然,它包括“ conf.d”中看起来像“ * .conf”的所有内容。

要使它更加疯狂,您可以添加任意数量的带有“ include”的目录,所有目录都可以包含大致相同的配置文件,所有这些文件在启动时都会彼此愉快地覆盖...然后覆盖它们自己。通过.htaccess文件在各个托管目录中。

据我所知,httpd.conf首先出现,其后依次是目录的包含顺序,然后是字母顺序。

美好时光。您可以使用apachectl -t或apachectl configtest来了解您的配置是否会引起麻烦。


1
谢谢,看来有人在其中保留了一个名为template.conf的文件,该文件当然会最后加载,然后覆盖指定/ Temp路径的所有其他文件。我只能猜测那里还有什么坏处!
chrtp 2014年

1
@chrtp要增加喜怒无常,可以在运行时使用-C(用于读取配置文件之前添加它们)和-c(用于配置文件之后读取它们)指定指令,因此您可以从命令行获取整个不同的配置在启动时。
Satanicpuppy 2014年

1

我要更改顺序,只需打开目录sites-available中的第一个conf文件,然后在第一个VirtualHost *:80之前添加您的虚拟主机代码。

就我而言,我希望hub.xxx.com.conf在bayxxx.com.conf之前。所以我打开hub.xxx.com.conf并将虚拟主机放在文件的开头

例如:

<VirtualHost *:80>
    DocumentRoot /www/hub.xxx.com/www/root
    ServerName hub.xxx.com
    ServerAlias *.hub.xxx.com
    <Directory "/www/hub.xxx.com/www/root">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /www/bayxxx.com/www/root
    ServerName bayxxx.com
    ServerAlias www.bayxxx.com
    <Directory "/www/bayxxx.com/www/root">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.