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 = no
on /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 次 |
最近记录: |