У якому порядку Apache завантажує конф-файли та які?


10

Я дивлюся на сервер CentOS 6.5 з встановленою веб-рамкою, яку багато років додавали багато. Є те, що виглядає як 5 активних .conf файлів у / conf, включаючи httpd.conf.

У httpd.conf включення читає

Include conf.d/*.conf

і це захоплює всі файли в цьому каталозі, але без конкретного застосованого порядку, про який я знаю, і що робити з каталогом / conf (no .d)?

Чи є налаштування, в якому вказано порядок завантаження або вони просто взяті з az?

Я не адміністратор сервера, я розробник, і проблема полягає в шляхах завантаження файлів у dir / / Temp, де я перевірив, чи вказаний шлях правильний для тих файлів, з якими я сам переймаюся.

Отже, перше питання:

Чи завантажує Apache все з / conf чи є десь вказаний список?

Другим питанням буде:

У якому порядку Apache завантажує файли в алфавітному порядку?

Нарешті:

Чи включається файл, який не закінчується .conf ? Наприклад, якщо я назву щось myconfig.conf.old, Apache пропустить його?

Відповіді:


14

Порядок в алфавітному порядку. Він завантажує лише те, що вказує шлях Включити. У випадку Include conf.d/*.confapache завантажить усі файли з іменами, що закінчуються на .conf.

Це витяг із документації Apache :

Символи підстановки у стилі оболонки (fnmatch ()) можуть використовуватися для включення декількох файлів одночасно в алфавітному порядку . Крім того, якщо Включити вказує на каталог, а не на файл, Apache прочитає всі файли в цьому каталозі та будь-який підкаталог. Але включати цілі каталоги не рекомендується, оскільки легко випадково залишити тимчасові файли в каталозі, що може призвести до відмови httpd.


Дякую, що відповідає на питання 1 та 2 неодмінно. Я виглядав, хоча документи Apache, але не зміг знайти відповідь.
chrtp

Загалом (порядок елементів конфігурації переосмислює попередні елементи), це правильно. Звичайно, якщо команди знаходяться в одному розділі конфігурації. Наприклад, можна (за допомогою AllowOverride) замінити елементи конфігурації з налаштуванням у .htaccessфайлі.
підозрюваний

Вибачте, я змінив свій коментар, перш ніж побачив ваш. У цьому випадку немає .htaccess, але є файл, що починається з 't', що перевищує все інше. Я збираюся перейменувати або перемістити файл.
chrtp

1
@chrtp, а чому файл, що починається з t, замінює все інше?
Андрій Савіних

1

Apache завантажує додаткову конфігурацію на основі директиви "Включити". Мабуть, це виглядає приблизно так:

Include conf.d/*.conf

Отже, очевидно, воно включає все в "conf.d", що виглядає як "* .conf".

Щоб зробити це ще більш божевільним, ви можете додати довільну кількість каталогів з "включити", всі вони могли б містити приблизно однакові конфігураційні файли, які б усі з радістю перекривали один одного при запуску ... файлом .htaccess у різних розміщених каталогах.

Наскільки я можу сказати, спочатку httpd.conf, а потім каталоги в тому порядку, в який вони включені, а потім в алфавітному порядку.

Хороші часи. Ви можете використовувати apachectl -t або apachectl configtest, щоб отримати уявлення про те, чи не призведе ваша конфігурація.


1
Дякую, схоже, хтось залишив там файл під назвою template.conf, який, звичайно, завантажується останнім, а потім замінює будь-які інші файли, які визначають шлях до / Temp. Я можу тільки здогадуватися, що ще порушується з тим там!
chrtp

1
@chrtp Щоб додати до веселощів, директиви можна задавати під час виконання за допомогою -C (для додавання їх перед читанням конфігураційних файлів) та -c (для читання їх після конфігураційних файлів), щоб ви могли джерелом цілого іншого конфігурації з командного рядка при запуску.
Satanicpuppy

1

Я хочу змінити порядок, просто відкрийте перший конф-файл у доступних сайтах каталогу та перед першим VirtualHost *: 80 додайте свій віртуальний код хосту.

У моєму випадку я хочу, щоб hub.xxx.com.conf був перед bayxxx.com.conf. Тож я відкриваю hub.xxx.com.conf і розміщую віртуальний хост на початку файлу

Наприклад:

<VirtualHost *:80>
    DocumentRoot /www/hub.xxx.com/www/root
    ServerName hub.xxx.com
    ServerAlias *.hub.xxx.com
    <Directory "/www/hub.xxx.com/www/root">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /www/bayxxx.com/www/root
    ServerName bayxxx.com
    ServerAlias www.bayxxx.com
    <Directory "/www/bayxxx.com/www/root">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.