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

43

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

httpd.confПуст, в то время как apache2.confэто не так .

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

ajsie
источник

Ответы:

46

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

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

Роб Ди Марко
источник
5
У меня нет файла с именем apapche2.conf
Doug Molineux
18

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

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

Powerlord
источник
1
Это правильный ответ ! а также файлы конфигурации ports / mods-available, если вы хотите уточнить свой ответ
Sudhi
5

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

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

Александр Т
источник
6
+1 «httpd.conf устарел»
feeela
1

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-проект.

Майкл Хэмптон
источник
1

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

bshea
источник
0

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

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


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

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

Паскаль МАРТИН
источник
Как упомянул Паскаль, если вы хотите добавить новый VirtualHost, вы должны добавить новый файл в sites-available, а затем включить его символьную ссылку в sites-enabled с помощью команды a2ensite - help.ubuntu.com/6.06/ubuntu/serverguide/ C / httpd.html
ccheneson
0

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

Кази Танвир Ахсан
источник
-2

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

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

Рэй Татуин
источник
Здравствуйте, мне кажется, что вы ответили на уже отвеченный вопрос, на который уже много лет назад. Кроме того, ваше решение не помогает первоначальному спрашивающему решить проблему, какой файл конфигурации рекомендуется использовать.
М. Глатки