我在docker容器中运行PHP7-fpm.但是我的PHP脚本无法访问我的docker-compose文件中设置的环境变量. getenv(‘MY_ENV_VAR’)返回FALSE.
我已经更改/etc/PHP/7.0/fpm/pool.d/www.conf以包含clear_env = no并重新启动服务PHP7.0-fpm restart但我的环境变量启动不存在.
我也尝试编辑/etc/PHP/7.0/fpm/PHP.ini包含行variables_order =“EGPCS”.
当我在bash shell上执行我的容器时,我可以看到我的变量存在.只是因为我的PHP脚本无法访问它们.
我错过了什么?
好吧这似乎都错了,但我通过在bash脚本中添加环境变量来实现它 –
#!/bin/bash echo "" >> /etc/PHP/7.0/fpm/pool.d/www.conf # new line. if ! [ -z "$MY_ENV_VAR" ] then echo "env[MY_ENV_VAR] = $MY_ENV_VAR;" >> /etc/PHP/7.0/fpm/pool.d/www.conf fi
然后在我的Dockerfile中 –
COPY add_env_vars.sh /add_env_vars.sh CMD source /add_env_vars.sh && service PHP7.0-fpm start
看起来像PHP-fpm只是不能很好地适应系统环境变量.
有关详情,请参阅 –