这是一个 CentOS 盒子,因此一些布局与 Ubuntu 不同。
如果我们查看 httpd.conf 文件,它期望从 /etc/httpd/conf.d 获取本地定义的配置文件(虚拟主机等):
[raub@webbie ~]$ fgrep Include /etc/httpd/conf/httpd.conf
Include conf.modules.d/*.conf
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# (You will also need to add "Includes" to the "Options" directive.)
IncludeOptional conf.d/*.conf
[raub@webbie ~]$
现在Apache 文档建议使用单独的目录来存储特定于虚拟主机的配置,
IncludeOptional conf/vhosts/*/*.conf
但我不想编辑 httpd.conf 文件,以防它在升级或其他事件期间被覆盖。那么,在不修改原始文件的情况下伪造该文件的最佳方法是什么?我能想到的最好的方法是 /etc/httpd/conf.d/zvirtualhosts.conf 文件(命名以便尽可能只读取接近末尾的部分),其中只有上述包含语句,但感觉有点笨拙。有没有更优雅/更干净的解决方案?
答案1
除了使用一个或多个符号链接(老实说,我觉得不太可取)之外,我认为您提出的解决方案与您可能获得的解决方案一样优雅(至少如果您不愿意编辑任何配置文件)。
答案2
RHEL/Centos 文档建议使用与 Ubuntu/Debian 不同的配置文件: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-web_servers#s2-apache-virtualhosts
如果您担心配置文件被覆盖,您可以随时使用一些配置管理工具,如 Puppet。