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



在Symfony 5.2中,当我执行这个命令

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

我有这个消息:

警告!您即将在数据库"db_name"中执行迁移操作。

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

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

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

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

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

控制台命令不能在web服务器下运行,因此它们不能访问Apache vhost或类似的任何配置。

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

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

最新更新