今天有用ThinkPHP8接入阿里云OSS时,需要用的用到getenv()来读取环境变量,因为新版OSS SDK是用环境变更来设置AK的。
现象
正常执行PHP文件,可以取到环境变量;但是通过nginx+php-fpm调用脚本取到不到环境变量
原因
php-fpm为了防止任意系统的环境变量进入 FPM worker 进程. 默认会清空系统环境变量
但是nginx下PHP是用php-fpm来运行的,有些环境变量被屏蔽了,需要用到nginx fastcgi_params增加参数,
在网站伪静态下或nginx配置都无效果。
正确的解决办法是
修改:/www/server/nginx/conf/fastcgi.conf
,重启nginx,问题解决