какой из этих двух файлов мне следует использовать для настройки 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
который Include
d от 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, можно добавить / переопределить в вашей пользовательской конфигурации, как указано выше.
Если 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