symfony - PHP 致命错误:未捕获的 RuntimeException:未定义 APP_ENV 环境变量
问题描述
我正在生产中部署 Symfony 4 项目。创建的 .env 文件包含以下内容:
APP_ENV=prod
APP_DEBUG=0
运行作曲家:
$ composer install --no-dev --optimize-autoloader
得到错误:
Script cache:clear returned with error code 255
!! PHP Fatal error: Uncaught RuntimeException:
APP_ENV environment variable is not defined.
You need to define environment variables for
configuration or add "symfony/dotenv" as a Composer
dependency to load variables from a .env file. in
/var/www/symfony4_project/bin/console:20
!! Stack trace:
!! #0 {main}
!! thrown in /var/www/symfony4_project/bin/console on line 20
!!
Script @auto-scripts was called via post-install-cmd
Symfony 关于部署和环境设置的文档非常狭窄和模糊。
目前尚不清楚我应该在哪里设置生产环境。
来自https://symfony.com/doc/current/configuration.html
句子“如果你决定在生产环境中设置真实的环境变量,如果 Symfony 检测到真实的 APP_ENV 环境变量存在并设置为 prod,则不会加载 .env 文件。”
我应该在哪里寻找这个真正的 APP_ENV 存在?
正如我在 stackoverflow 和 github 上发现的那样,存在很多问题,但答案并不多。
感谢帮助。
解决方案
你需要安装symfony/dotenv
composer 包来加载你的.env文件。查看官方文档https://symfony.com/doc/current/components/dotenv.html
Dotenv 组件解析 .env 文件以使环境变量可访问。
运行composer require symfony/dotenv
这个应该可以。
推荐阅读
- junit - 为什么 Mockito “when” 方法会生成 NullpointerException?
- perl - Perl 中的“推@{bla bla}”是什么意思?
- java - 如何在 Arraylist 中搜索特定元素?(java)
- c - 为什么访问函数内部的结构成员会导致 malloc():C 语言中的 top size 损坏?
- python - Python:while循环内的while循环
- python - 迭代修改熊猫数据框?
- java - 使用hibernate和java的Mysql查询出错
- objective-c - 目标 C 中的 AES256 CBC 加密/解密。解密时获取空值。我已经有了加密值
- python - 在神经网络模型之上设置优化求解器
- javascript - d3.js 在线聊天网格问题