Em que ordem o Apache carrega arquivos conf e quais?

8

Eu estou olhando para um servidor CentOS 6.5 com um webframework instalado que foi adicionado ao longo dos anos por muitos. Há o que parece 5 arquivos .conf ativos em / conf, incluindo httpd.conf.

No httpd.conf, o include lê

Include conf.d/*.conf

e que pega todos os arquivos nesse diretório, mas sem nenhuma ordem específica aplicada que eu saiba, e então o que acontece com o diretório / conf (no .d)?

Existe uma configuração que declara a ordem de carregamento ou são apenas tiradas de a-z?

Eu não sou o administrador do servidor, sou um desenvolvedor e o problema está nos caminhos para fazer o upload de arquivos para um diretório / Temp, onde verifiquei se o caminho especificado está correto para os arquivos com os quais estou preocupado .

Então, a primeira pergunta é:

O Apache carrega tudo de / conf ou há uma lista especificada em algum lugar?

A segunda pergunta seria:

Em que ordem o Apache carrega os arquivos, em ordem alfabética?

Por fim:

Um arquivo que não termina em .conf é incluído? Por exemplo, se eu nomear algo como myconfig.conf.old, o Apache irá ignorá-lo?

    
por chrtp 22.01.2014 / 12:56

3 respostas

12

A ordem é alfabética. Apenas carrega o que o caminho Include especifica. No caso de Include conf.d/*.conf , o apache carregará todos os arquivos com nomes que terminem em .conf .

Este é um extrato da Documentação do Apache :

Shell-style (fnmatch()) wildcard characters can be used to include several files at once, in alphabetical order. In addition, if Include points to a directory, rather than a file, Apache will read all files in that directory and any subdirectory. But including entire directories is not recommended, because it is easy to accidentally leave temporary files in a directory that can cause httpd to fail.

    
por 22.01.2014 / 14:00
1

O Apache carrega configurações extras com base na diretiva "Incluir". Provavelmente parece assim:

Include conf.d/*.conf

Então, obviamente, inclui tudo em "conf.d" que se parece com "* .conf".

Para torná-lo ainda mais insano, você pode adicionar um número arbitrário de diretórios com "include", todos contendo mais ou menos os mesmos arquivos de configuração, que todos se animam no início ... E então eles mesmos sobrecarregado pelo arquivo .htaccess em vários diretórios hospedados.

Por mais que eu saiba, o httpd.conf é o primeiro, seguido pelos diretórios na ordem em que eles estão incluídos e depois em ordem alfabética a partir daí.

bons tempos. Você pode usar o apachectl -t ou o apachectl configtest para ter uma idéia se sua configuração irá ou não causar problemas.

    
por 22.01.2014 / 14:09
1

Se você quiser alterar a ordem, basta abrir o primeiro arquivo conf no diretório sites-available e antes do primeiro VirtualHost *: 80 adicionar seu código de host virtual.

No meu caso, quero que o hub.xxx.com.conf esteja antes do bayxxx.com.conf. Então eu abro o hub.xxx.com.conf e coloco o host virtual no começo de um arquivo

Por exemplo:

<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>
    
por 10.12.2015 / 10:34