Symfony 命令 php bin/console 无法读取 Apache SetEnv?

Symfony command php bin/console can't read Apache SetEnv?

使用 Symfony 5.2,当我执行这个命令时

APP_ENV=prod php bin/console d:m:m

我有这条消息:

WARNING! You are about to execute a migration in database "db_name" that could ...

但是,在我的Apache环境变量中,我自定义了数据库名称:

SetEnv DATABASE_URL "mysql://website:password@localhost:3306/website_prod"

我确定此配置有效(当我访问该站点时,我处于 ​​prod 环境中,而我在 Symfony 生成的 .env 中离开 dev)。

为什么APP_ENV=prod php bin/console d:m:m 命令行显示错误的数据库?我认为 php bin / console ... 命令行中没有考虑 Apache 变量,我需要创建一个特定的 .env.prod.local.

你能确认一下吗?如果是,我不明白为什么 Symfony 在他们的文档中提到这个 (https://symfony.com/doc/current/setup/web_server_configuration.html#apache-with-mod-php-php-cgi)

控制台命令不在 Web 服务器下 运行,因此它们无权访问您为 Apache 虚拟主机或类似内容设置的任何配置。

处理这种配置的最佳方法是将这些值存储在环境变量、.env 文件中,或者使用 Symfony 的 secret management 功能。

这样,当通过网络服务器或命令行脚本访问应用程序时,此配置将对应用程序可用。