php getenv无法获取环境变量
现象
php在nginx+fpm
模式下getenv()
方法获取到的内容与cli
模式下不同
举例
-
shell下输出
HOSTNAME
-
nginx+fpm无法获取
HOSTNAME
环境变量
-
php cli模式下输出
原因
nginx+fpm下环境变量通过nginx的fastcgi传递,所有环境变量需要在nginx配置文件下的fastcgi_params
文件指定
解决
增加fastcgi_params参数,并重启nginx
echo "fastcgi_param HOSTNAME php-nginx;" >> /etc/nginx/fastcgi_params
nginx -s reload