Я настраиваю Apache под дистрибутив Linux на основе Debian. Я хотел бы настроить его таким образом, чтобы мои изменения конфигурации не мешали обновлению Apache. Я хотел бы сделать это таким образом, чтобы мне не приходилось редактировать какие-либо файлы конфигурации, поставляемые с дистрибутивом.
Я знаю, что могу поместить конфигурацию своих сайтов в / и т.д. / apache2 / сайты-доступные каталог, а затем включите их с помощью a2ensite
. Точно так же я могу включить нужные мне модули с a2enmod
.
Что произойдет, если я запишу новые файлы конфигурации в / и т.д. / apache2 / conf-доступный / а затем используйте a2enconf
включить их? В частности, сможет ли он переопределить настройки, указанные в других файлах конфигурации. Например /etc/apache2/apache2.conf указывает Timeout 300
. Если я положу Timeout 500
в моем файле конфигурации, переопределит ли он предыдущее объявление? Существуют ли какие-либо директивы конфигурации Apache, для которых использование этого метода переопределения не будет работать?
Если в текущей конфигурации используется включение из определенного каталога по маске - да, можно.
Обычно это выглядит так:
Include etc/apache22/Includes/*.conf
Поэтому вы просто копируете свою конфигурацию в этот каталог и помните, что apache include включает в себя в лексическом порядке. Если вы хотите переопределить некоторые уже установленные значения, просто назовите свой файл zzzzzzzzz.conf
Основываясь на обнадеживающем ответе Кондыбаса, я пошел дальше и поэкспериментировал с этим. Я столкнулся только с двумя проблемами:
В Listen
Директива не может быть "отменена". По своей природе это «аддитивная» директива. На какое-то время меня озадачило то, что его даже нельзя указать дважды для одного и того же номера порта. Следующее вызовет ошибку о том, что порт 80 уже используется и Apache не может быть запущен. Решением для меня было удалить Listen
директиву из моей собственной конфигурации и полагаться только на ту, которая предоставляется дистрибутивом.
Listen 80
Listen 80
В PidFile
директиву нельзя переопределить в системе на основе Debian без изменения /etc/apache2/envvars
файл конфигурации. Файл идентификатора процесса должен совпадать между этим файлом конфигурации и файлом конфигурации Apache, иначе Apache не начнет использовать Debian service
команда.
Помимо этого, все другие директивы, которые я пробовал, нормально работают в файле конфигурации, который указывает их во второй раз.