Pergunta

Eu só quero o meu apache de registrar um pouco do meu ambiente predefinido para que eu possa recuperá-lo usando a função getenv em php. Como posso fazer isso? Eu tentei adicionar /etc/profile.d/foo.sh com FOO exportação = / bar / baz usando raiz e Apache reiniciado.

Foi útil?

Solução

variáveis ??

Ambiente são herdadas por processos no Unix. Os arquivos em /etc/profile.d só são executados (no shell atual, não em um subshell) quando você faz login. Apenas alterando o valor lá e, em seguida, reiniciar um processo não irá atualizar o meio ambiente.

Correções possíveis:

  • logout / login, em seguida, iniciar o Apache
  • Fonte do arquivo: # . /etc/profile.d/foo.sh, em seguida, reiniciar o apache
  • fonte do arquivo no script apache init

Você também precisa ter certeza de que /etc/profile.d/ é originado quando Apache é iniciado por init ao invés de si mesmo.

A melhor correção também pode depender da distribuição você está usando, porque eles usam diferentes esquemas para configuração.

Outras dicas

Você pode usar SetEnv em seus arquivos de configuração ( /etc/httpd/conf.d/*.conf, .htaccess ...). Além disso, você deve ser capaz de defini-los em / etc / sysconfig / httpd (em distribs baseadas em RPM) e exportação -los. (Nota: não testado)

Nota: não me surpreenderia se algumas distribuições tentou muito difícil de esconder, tanto quanto possível, tanto quanto de configuração do sistema está em causa, de um serviço de acesso público, como o Apache. E se não o fizerem, eles podem começar a fazer isso em uma versão futura. Por isso eu aconselho a fazer isso explicitamente. Se você precisa compartilhar tal configuração um entre Apache e suas conchas, você pode tentar o abastecimento /etc/profile.d/yourprofile.sh de / etc / sysconfig / httpd

arquivos de configuração do Apache permitem variáveis ??de ambiente definidas em uma base por site.

Então, se o seu servidor web está servindo páginas de dois locais lógicas você pode ter o mesmo conjunto variável de ambiente de forma diferente para cada site e, assim, obter o seu PHP para reagir de forma diferente.

Veja a Apache mod_env para mais detalhes:

Se precisar de env vars para Apache somente, o que funcionou para mim foi a edição do /etc/apache2/envvars e reinicialização do Apache. Eu adicionei essas configurações:

export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top