Как лучше всего организовать файлы конфигурации Apache (настраиваемые на сайте), не затрагивая файлы по умолчанию?

Как лучше всего организовать файлы конфигурации Apache (настраиваемые на сайте), не затрагивая файлы по умолчанию?

Это система 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.

Связанный контент