docker nginx+php-fpm:环境变量在控制台上工作但不在脚本中工作

Ma *_*Sch 4 environment-variables docker

我正在使用带有 nginx 和 php-fpm7.2 的 ubuntu:18.04 容器。我设置

clear_env=no
Run Code Online (Sandbox Code Playgroud)

/etc/php/7.2/fpm/pool.d/www.conf中和

variables_order = "EGPCS"
Run Code Online (Sandbox Code Playgroud)

在/etc/php/7.2/fpm/php.ini

我从 docker-compose 传递了一个变量 $myVar。跑步

echo $myVar
Run Code Online (Sandbox Code Playgroud)

显示正确的值。

运行 php -r "echo getenv('myVar');" 显示了正确的值。

将文件index.php放入/var/www/html/(这是我的 www 根目录),其中包含

<?php
   echo getenv('myVar');
?>
Run Code Online (Sandbox Code Playgroud)

返回给我一个空字符串。

有人能帮我吗?

谢谢你,马丁

Thi*_*ira 7

这是一个 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)

立即检查环境变量