Princípio de Incerteza Quântica do Apache… Se a diretriz é verdadeira ou falsa

2

O valor da variável de ambiente é definido no bash:

# export PRODUCTION=true
# echo $PRODUCTION
# true

Aqui está o trecho relevante do meu arquivo host virtual:

<If "-T osenv('PRODUCTION')">
  Define dogs dogs
</If>
<Else>
  Define cats cats
</Else>

apache2ctl -S produz:

Define: dogs=dogs
Define: cats=cats

Assim, temos uma condição quântica que é verdadeira e falsa . O que está acontecendo aqui e como faço para que ele se comporte normalmente?

Não consigo encontrar nada nessas referências que indique que estou fazendo algo errado.

por James 15.11.2015 / 18:37

1 resposta

1

Quando você executa apachectl -S , ele está apenas analisando o código para certificar-se de que esteja sintaticamente correto; na verdade, ele não está executando o código. A saída está apenas informando as coisas que podem acontecer, não o resultado da avaliação do bloco if / else.

Você pode verificar isso, na verdade, ter uma diretiva Apache ativa em seus blocos if e else. Por exemplo:

<If "-T osenv('PRODUCTION')">
  Define dogs dogs
  Header set MyHeader1 "PRODUCTION defined %D %t"
</If>
<Else>
  Define cats cats
  Header set MyHeader2 "PRODUCTION undefined %D %t"
</Else>

E você começa seu Apache com ou sem PRODCUTION definido, você verá o cabeçalho diferente nas respostas do seu servidor. Os %D e %t estão lá para adicionar algo que muda com cada solicitação para que você não pense que está obtendo algo armazenado em cache de alguma forma.

Por favor, note que para isso funcionar você deve fazer um ponto final e começar entre a configuração / desconfiguração da variável de ambiente PRODUÇÃO, a reinicialização não funcionará.

    
por 01.10.2016 / 10:54