8

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

В httpd.conf включается чтение

Include conf.d/*.conf

и он захватывает все файлы в этом каталоге, но без какого-либо определенного порядка, о котором я знаю, и что с каталогом /conf (no .d)?

Есть ли настройка, которая устанавливает порядок загрузки или они просто взяты из az?

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

Итак, первый вопрос:

Apache загружает все из /conf или список где-то указан?

Второй вопрос будет:

В каком порядке Apache загружает файлы в алфавитном порядке?

И, наконец:

Включается ли файл, который не заканчивается на .conf ? Например, если я назову что-нибудь myconfig.conf.old, Apache пропустит это?

3 ответа3

12

Порядок в алфавитном порядке. Он загружает только то, что указывает путь включения. В случае Include conf.d/*.conf apache загрузит все файлы с именами, заканчивающимися на .conf .

Это выдержка из документации Apache :

Подстановочные знаки в стиле оболочки (fnmatch ()) можно использовать для включения нескольких файлов одновременно в алфавитном порядке. Кроме того, если параметр «Включить» указывает на каталог, а не на файл, Apache будет читать все файлы в этом каталоге и любом подкаталоге. Но включать в себя целые каталоги не рекомендуется, потому что легко случайно оставить временные файлы в каталоге, что может привести к сбою httpd.

1

Apache загружает дополнительную конфигурацию на основе директивы Include. Вероятно, это выглядит так:

Include conf.d/*.conf

Таким образом, очевидно, что он включает в себя все в "conf.d", что выглядит как * .conf.

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

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

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

1

Если вы хотите изменить порядок, просто откройте первый файл conf в каталоге sites-available и перед первым 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

<Directory "/www/bayxxx.com/www/root">
    allow from all
    Options +Indexes
</Directory>

ServerName bayxxx.com
ServerAlias www.bayxxx.com
</VirtualHost>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .