Dies ist eine CentOS-Box, daher unterscheidet sich das Layout teilweise von Ubuntu.
Wenn wir uns die Datei httpd.conf ansehen, erwartet sie, die lokal definierten Konfigurationsdateien (virtuelle Hosts usw.) aus /etc/httpd/conf.d abzurufen:
[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 ~]$
Jetztdie Apache-Dokumenteschlage vor, ein separates Verzeichnis für Konfigurationen zu verwenden, die spezifisch für virtuelle Hosts sind.
IncludeOptional conf/vhosts/*/*.conf
aber ich möchte die Datei httpd.conf nicht bearbeiten, falls sie während eines Upgrades oder eines anderen Ereignisses überschrieben wird. Was wäre also die beste Möglichkeit, dies vorzutäuschen, ohne die Originaldateien zu ändern? Das Beste, was mir einfällt, ist eine Datei /etc/httpd/conf.d/zvirtualhosts.conf (so benannt, dass sie nur so nah wie möglich am Ende gelesen wird), die nur die obige Include-Anweisung enthält, aber sie fühlt sich etwas umständlich an. Gibt es elegantere/sauberere Lösungen?
Antwort1
Abgesehen von der Verwendung eines oder mehrerer symbolischer Links (was mir ehrlich gesagt weniger zusagt) denke ich, dass die von Ihnen vorgeschlagene Lösung so elegant ist, wie Sie wahrscheinlich nur kriegen können (zumindest, wenn Sie keine Konfigurationsdateien bearbeiten möchten).
Antwort2
Die RHEL/Centos-Dokumente empfehlen die Verwendung anderer Konfigurationsdateien als Ubuntu/Debian: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-web_servers#s2-apache-virtualhosts
Wenn Sie Bedenken hinsichtlich des Überschreibens von Konfigurationsdateien haben, können Sie immer ein Konfigurationsverwaltungstool wie Puppet verwenden.