Estou usando PHP como PHP-FPM no Centos. Estou tentando seguir as diretrizes http://12factor.net/ de armazenar as configurações nas variáveis de ambiente.
Eu criei um arquivo em /etc/profile.d que define as variáveis de ambiente que desejo, e as variáveis de ambiente aparecem quando testadas na CLI via Bash, ou seja, executando o script bash:
echo $SOME_SERVER_SETTING
mostra a saída correta.
Eu defini a configuração clear_env para false e variables_order para EGPCS
, no entanto, a variável que eu defini não aparece no PHP getenv('SOME_SERVER_SETTING')
ou fazendovar_dump($_ENV)
Que outra configuração precisa ser definida para permitir que o PHP-FPM receba todas as variáveis de ambiente do servidor, e em particular aquelas definidas por meio de um script de shell em /etc/profiles.d no Centos?
Razões de segurança :-)
Veja /etc/php5/fpm/pool.d/www.conf
(localização debian, pode ser diferente em CentOs)
; Clear environment in FPM workers
; Prevents arbitrary environment variables from reaching FPM worker processes
; by clearing the environment in workers before env vars specified in this
; pool configuration are added.
; Setting to "no" will make all environment variables available to PHP code
; via getenv(), $_ENV and $_SERVER.
; Default Value: yes
;clear_env = no
; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from
; the current environment.
; Default Value: clean env
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras