首页 > 解决方案 > 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 上发现的那样,存在很多问题,但答案并不多。

感谢帮助。

标签: symfonyenvironment-variablesenvironmentsymfony4production-environment

解决方案


你需要安装symfony/dotenvcomposer 包来加载你的.env文件。查看官方文档https://symfony.com/doc/current/components/dotenv.html Dotenv 组件解析 .env 文件以使环境变量可访问。

运行composer require symfony/dotenv这个应该可以。


推荐阅读