Eu defino uma variável de ambiente em httpd.conf:
SetEnv http_proxy "http://localhost:3128"
Mas não consigo obter essa variável em php usando getenv
:
<?php
echo getenv("http_proxy");
phpinfo();
print_r($_ENV);
getenv
retorna vazio e print_r($_ENV)
mostra o seguinte conteúdo:
Array ( [LANG] => C [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin [NOTIFY_SOCKET] => /run/systemd/notify )
Curiosamente, a variável de ambiente é mostrada na seção "Ambiente Apache" da phpinfo
saída.
(meu sistema é Apache 2.4/php 5.6/CentOS7)
O PHP 5.6 não tem suporte há 3 anos . Atualize para uma versão atual agora! Em seguida, altere o seguinte:
Use
SetEnv HTTP_PROXY "http://localhost:3128"
- as variáveis de ambiente diferenciam maiúsculas de minúsculas.Use
getenv(varname: "HTTP_PROXY", local_only: true)
para solicitar uma variável do ambiente do servidor.Se você não especificar explicitamente para receber apenas
HTTP_
variáveis locais, em vez disso , obterá resultados de fastcgi ; A desativação do comportamento SAPI está documentada na descrição da função getenv() :