Solución:
Probado en Centos 7 con el servicio Systemd y PHP 5.6.4
ABIERTO
/etc/php.ini
ENCONTRAR
variables_order = "GPCS"
REEMPLAZAR A
variables_order = "EGPCS"
# http://php.net/manual/en/ini.core.php#ini.variables-order
ABIERTO
/etc/php-fpm.d/www.conf (maybe /etc/php5/fpm/pool.d/www.conf)
(do not confuse with /etc/php-fpm.conf)
ENCONTRAR SI EXISTE
clear_env = yes
SUSTITUIR O AÑADIR
clear_env = no
# http://php.net/manual/en/install.fpm.configuration.php
ABIERTO
/etc/environment
AGREGAR
#any variables you need, for example:
MY_VAR=1234
EJECUTAR EN SHELL PARA COMPROBAR
source /etc/environment
echo $MY_VAR # 1234
CORRER CON CONCHA
ln -fs /etc/environment /etc/sysconfig/php-fpm
systemctl daemon-reload && service php-fpm restart
…PRUEBAS
ABIERTO
index.php # in your project folder, running with php-fpm
AGREGAR
var_dump(getenv('MY_VAR'), $_ENV['MY_VAR']);exit;
EJECUTAR EN NAVEGADOR
http://mylink.to.project/index.php
string(4) "1234"
string(4) "1234"
¡DISFRUTAR!
Razones de seguridad 🙂
Ver /etc/php5/fpm/pool.d/www.conf
(ubicación de Debian, puede ser diferente en 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
Las variables de entorno en una configuración FastCGI se establecen como entrada por el cliente del proceso FPM, por ejemplo, NginX. Se envían como encabezados al servidor FastCGI, que los interpreta y los configura en consecuencia para que los lea con getenv.
Si de hecho está utilizando NginX, busque las directivas fastcgi_param. También puede establecer variables de entorno en la configuración de su grupo de php5-fpm, según su caso de uso.