Docker 中的 Laravel 无法识别环境变量
Environment variables are not recognized by Laravel in Docker
我在 Docker 中使用环境变量时遇到问题。
出于某种原因 Laravel 看不到我在 Docker 文件中设置的环境变量。像 APP_KEY、APP_ENV 等。但是当我通过 SSH 进入 docker 容器时:
docker exec -it [container_name] bash
和运行以下:
php artisan tinker
> print_r($_ENV)
环境变量存在并设置为正确的值。但是,当我尝试在 Blade 模板中执行相同操作时,我根本看不到 APP_KEY、APP_ENV 变量。我编辑了 Docker 容器中的 php.ini
文件,使其显示
variables_order = 'EGPCS'
.env
文件是我将环境变量传递给 Laravel 的唯一途径吗?
非常感谢您的帮助。
干杯
使用 EB CLI 而不是 .env
,您可以将环境变量传递到 Elastic Beanstalk 中的 docker 容器。
例如:
$ eb setenv APP_KEY=xxx APP_ENV=xxx
请阅读以下文档:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html
我解决了!其实我的一个朋友给了我线索。
原来是 FPM 配置删除了 Elastic Beanstalk 设置的环境变量。
基于此文档:http://php.net/manual/en/install.fpm.configuration.php
clear_env boolean
FPM worker 中的清晰环境。通过在添加此池配置中指定的环境变量之前清除工作人员中的环境,防止任意环境变量到达 FPM 工作进程。自 PHP 5.4.27、5.5.11 和 5.6.0。默认值:是。
因此在您的 php-fpm.conf
文件中查找该变量并将其设置如下:
clear_env = no
一切顺利!然后,您的 Laravel 应用程序可以使用 env()
提取在 Elastic Beanstalk 中设置的环境变量
我希望对某人有所帮助。干杯!
我在 Docker 中使用环境变量时遇到问题。
出于某种原因 Laravel 看不到我在 Docker 文件中设置的环境变量。像 APP_KEY、APP_ENV 等。但是当我通过 SSH 进入 docker 容器时:
docker exec -it [container_name] bash
和运行以下:
php artisan tinker
> print_r($_ENV)
环境变量存在并设置为正确的值。但是,当我尝试在 Blade 模板中执行相同操作时,我根本看不到 APP_KEY、APP_ENV 变量。我编辑了 Docker 容器中的 php.ini
文件,使其显示
variables_order = 'EGPCS'
.env
文件是我将环境变量传递给 Laravel 的唯一途径吗?
非常感谢您的帮助。
干杯
使用 EB CLI 而不是 .env
,您可以将环境变量传递到 Elastic Beanstalk 中的 docker 容器。
例如:
$ eb setenv APP_KEY=xxx APP_ENV=xxx
请阅读以下文档: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html
我解决了!其实我的一个朋友给了我线索。
原来是 FPM 配置删除了 Elastic Beanstalk 设置的环境变量。
基于此文档:http://php.net/manual/en/install.fpm.configuration.php
clear_env boolean
FPM worker 中的清晰环境。通过在添加此池配置中指定的环境变量之前清除工作人员中的环境,防止任意环境变量到达 FPM 工作进程。自 PHP 5.4.27、5.5.11 和 5.6.0。默认值:是。
因此在您的 php-fpm.conf
文件中查找该变量并将其设置如下:
clear_env = no
一切顺利!然后,您的 Laravel 应用程序可以使用 env()
我希望对某人有所帮助。干杯!