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
программы)
Вы собираетесь использовать эти каталоги для 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
д от 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