Aid*_*wen 5 environment-variables php-fpm docker docker-compose
我在 docker 容器中运行 php7-fpm。但是,我的 php 脚本无法访问我的 docker-compose 文件中设置的环境变量。getenv('MY_ENV_VAR')返回FALSE。
我已更改/etc/php/7.0/fpm/pool.d/www.conf为包含clear_env = no并重新启动,service php7.0-fpm restart但我的环境变量 start 不存在。
我也试过编辑 /etc/php/7.0/fpm/php.ini 包含行variables_order = "EGPCS".
当我在 bash shell 上执行到我的容器时,我可以看到我的变量存在。只是它们在我的 php 脚本中无法访问。
我错过了什么?
小智 11
这是一个 PHP-FPM 恶作剧。
clear_env = noon /etc/php/7.2/fpm/pool.d/www.conf,所以;在 Dockerfile 上使用 启动 php-fpm init.d,而不是使用 service。
前任:
CMD /etc/init.d/php7.2-fpm start && nginx -g 'daemon off;'
Run Code Online (Sandbox Code Playgroud)
立即检查环境变量
好吧,这似乎都是错误的,但我通过在 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
Run Code Online (Sandbox Code Playgroud)
然后在我的 Dockerfile 中 -
COPY add_env_vars.sh /add_env_vars.sh
CMD source /add_env_vars.sh && service php7.0-fpm start
Run Code Online (Sandbox Code Playgroud)
看起来 php-fpm 与系统环境变量的配合不太好。
欲了解更多信息,请参阅 -
| 归档时间: |
|
| 查看次数: |
10242 次 |
| 最近记录: |