Ответы:
Httpd.conf предназначен для пользовательских конфигураций. Вы действительно не должны редактировать apache2.conf, так как он может быть обновлен будущими обновлениями.
Дополнительная опция - просто поместить вашу пользовательскую конфигурацию в /etc/apache2/conf.d, все файлы в этом каталоге также включены.
Это не ваши единственные варианты. В Ubuntu / Debian Apache также обрабатывает все файлы /etc/apache2/sites-enabled/
(которые должны быть символическими ссылками на файлы в sites-available/
каталоге, управляемые программами a2ensite
и a2dissite
)
Вы собираетесь использовать эти каталоги для VirtualHost
s.
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, может быть добавлено / переопределено в вашей пользовательской конфигурации, как описано выше.
Подробнее: 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