Ubuntu Apache: httpd.conf или apache2.conf?

Какой из этих двух файлов я должен использовать для настройки Apache?

httpd.conf пусто, а apache2.conf не является.

Это меня смущает!

8 ответов

Решение

Httpd.conf предназначен для пользовательских конфигураций. Вы действительно не должны редактировать apache2.conf, так как он может быть обновлен будущими обновлениями.

Дополнительная опция - просто поместить вашу пользовательскую конфигурацию в /etc/apache2/conf.d, все файлы в этом каталоге также включены.

Это не ваши единственные варианты. В Ubuntu/Debian Apache также обрабатывает все файлы в /etc/apache2/sites-enabled/ (которые должны быть символическими ссылками на файлы в sites-available/ каталог, управляемый a2ensite а также a2dissite программы)

Вы собираетесь использовать эти каталоги для VirtualHosts.

apache2.conf включает в себя httpd.conf:

a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf 
Include /etc/apache2/httpd.conf

Я думаю, что httpd.conf устарел, но просто оставлен там для консервативных людей, чтобы они нашли способ обойтись...:)

РЕДАКТИРОВАТЬ:

Прочитав ответ Роба, я сделал лучше grep:

a@test:/etc/apache2$ grep -C 1 httpd.conf apache2.conf 
# Include all the user configurations:
Include /etc/apache2/httpd.conf

Пользовательские конфигурации это...

Apache Software Foundation публикует много программного обеспечения, одним из которых является веб-сервер с именем httpd, Источники проекта httpd включают среди прочего httpd.conf Пример файла конфигурации, который устанавливается по умолчанию в /usr/local/etc/httpd или же /etc/httpd, Вы найдете httpd, названный таковым на большинстве систем.

Однако давно и далеко кто-то из дистрибутива Debian GNU/Linux решил изменить название программного обеспечения в этом дистрибутиве с httpd в apache2, Таким образом, в системе Debian вы найдете файл конфигурации с именем apache2.conf в каталоге с именем /etc/apache2, Я не знаю, кто это сделал и почему, но это постоянный источник путаницы наравне с называнием Windows "Microsoft" или ESXi "VMware". Дистрибутивы, основанные на Debian, такие как Ubuntu, наследуют эту странность. Даже незнакомец, они тогда включают файл /etc/apache2/httpd.conf который Includeд от apache2.conf в который пользователи могут поместить пользовательскую конфигурацию.

Таким образом, ответ таков: если вы работаете в системе на основе Debian, вы склоняете свой мозг к тому, чтобы делать все так, как того хочет Debian. В противном случае вы обычно делаете все обычным образом, как это делает исходный httpd-проект.

Apache 2.4

Использовать

Поместите любые пользовательские конфигурации в /etc/apache2/conf-available/{name}.conf

Включить / отключить вашу конфигурацию, используя sudo a2enconf {name}или же sudo a2disconf {name},

(Затем перезапустите службу apache2.)

Не используйте:

httpd.conf устарела, и вы больше не должны это видеть - если вы это сделаете, оставьте его пустым, как установлено.

apache2.conf все еще установлен, но оставьте его в покое, если вы хотите обновить Apache чисто / легко.

-

Все, что вы можете увидеть в "глобальной" конфигурации Apache, может быть добавлено / переопределено в вашей пользовательской конфигурации, как описано выше.

Подробнее: https://stackoverflow.com/a/11687212/503621

Просто откройте apache2.conf и посмотрите на содержимое:

Include /etc/apache2/mod-enabled/*.conf
Include /etc/apache2/httpd.conf

Поэтому, если вы хотите включить свою собственную конфигурацию, добавьте ее в httpd.conf, и apache2.conf автоматически получит ее.

Как говорят другие, apache2.conf может генерироваться машиной, и лучше не трогать его.

Для получения дополнительной информации, как правило, Ubuntu использует apache2.conf, а Centos использует httpd.conf. Так что все эти файлы зависят от того, какая у вас ОС.

Если apache2.conf не пустой, а httpd.conf пусто, вы, вероятно, должны использовать apache2.conf;-)

Но я полагаю, что один включает в себя другой (и один из них хранится исключительно по причинам обратной совместимости), поэтому он не должен сильно меняться.


Тем не менее, если вы хотите добавить что-то, как новый VirtualHost: нет ли другого подкаталога, в который вы могли бы поместить свой файл, и он был включен?

Вероятно, это было бы лучшим решением: вы не изменили бы файл по умолчанию, что упростило бы обновления.

Чтобы найти имя и местоположение файла конфигурации, вам необходимо:

1) Поиск как процесс называется, в этом случае работает с пользователем Apache:

ps -ef | grep apache

(в этом примере возвращает: httpd)

2) Показать переменные, используемые двоичным файлом:

httpd -V | grep 'HTTPD_ROOT' && httpd -V | grep 'SERVER_CONFIG_FILE'

Извлечены и скриншоты по адресу: http://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html

Другие вопросы по тегам