Ubuntu Apache: httpd.conf або apache2.conf?


43

який із цих двох файлів слід використовувати для налаштування Apache?

httpd.confПорожній, в той час як apache2.confце не так .

Це мене бентежить!

Відповіді:


46

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

Додатковим варіантом є просто помістити власну конфігурацію в /etc/apache2/conf.d, також включені всі файли в цьому каталозі.


5
У мене немає файлу під назвою apapche2.conf
Doug

18

Це не єдині ваші варіанти. У Ubuntu / Debian Apache також обробляє всі файли в /etc/apache2/sites-enabled/(які повинні бути посиланнями на файли в sites-available/каталозі, якими керують a2ensiteі a2dissiteпрограми)

Ви маєте намір використовувати ці каталоги для VirtualHosts.


1
це правильна відповідь! а також конфігураційні файли, доступні для портів / модів, якщо ви хочете детальніше пояснити свою відповідь
Sudhi

5

apache2.conf включає httpd.conf:

a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf 
Include /etc/apache2/httpd.conf

Я думаю, що httpd.conf застарілий, але просто залишений там для консервативних людей, щоб вони знайшли шлях навколо ... :)

Редагувати:

Прочитавши відповідь Роба, я зробив ще краще задоволення:

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 застаріло"
гонорар

1

Фонд програмного забезпечення Apache публікує багато біт програмного забезпечення, одним з яких є веб-сервер з назвою 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 висхідного напрямку.


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


0

Якщо apache2.confвін не порожній і httpd.confпорожній, ви, ймовірно, використовуєте apache2.conf;-)

Але я вважаю, що одне включає інше (і що одне з них зберігається виключно з міркувань відсталої сумісності) - значить, воно не повинно сильно змінюватися.


Але якщо ви хочете додати щось, як нове VirtualHost: чи не існує ще одного підкаталогу, в який можна було б помістити свій файл і включити його?

Можливо, це було б кращим рішенням: ви не змінювали б файл за замовчуванням - це спростило б оновлення.


Як згадував Паскаль, якщо ви хочете додати новий VirtualHost, вам слід додати новий файл під наявні сайти, а потім мати його посилання на сайти, включені командою 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


Здрастуйте, мені здається, ви вже відповіли на запитання, відповіді на яке було багато років тому. Крім того, ваше рішення не допомагає оригінальному запитувачу вирішити проблему, який конфігураційний файл найкраще використовувати.
М. Глаткі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.