Это система 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 (названный так, чтобы он читался только как можно ближе к концу), в котором есть только указанное выше выражение include, но оно кажется немного неуклюжим. Есть ли более элегантные/чистые решения?
решение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.