Назад | Перейти на главную страницу

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

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

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

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

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

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

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

Вы должны использовать эти каталоги для VirtualHostс.

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 который Included от 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 не пусто, и httpd.conf пусто, вам, вероятно, следует использовать apache2.conf ;-)

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


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

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

просто откройте 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. Итак, все эти файлы зависят от того, какая у вас ОС.

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

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