這是一個 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 ~]$
現在阿帕奇文檔建議為特定於虛擬主機的配置使用單獨的目錄,
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。