【问题标题】:Symfony parameters in environment variable not found未找到环境变量中的 Symfony 参数
【发布时间】:2016-11-07 13:49:01
【问题描述】:

我在 Symfony 2.8.12 这是我的parameters.yml 文件:

parameters:
    database_host: localhost
    database_port: 3306
    database_name: test
    database_user: root
    secret: TODO

我的环境变量 SYMFONY__DATABASE_PASSWORD 等于 root 如果我运行 app/console debug:container --parameter="database_password" 我有

 ------------------- -------
  Parameter           Value
 ------------------- -------
  database_password   root
 ------------------- -------

但是当我去 localhost/app_dev.php 我有

ParameterNotFoundException in ParameterBag.php line 84:
You have requested a non-existent parameter "database_password". Did you mean this: "database_port"?

清除缓存后还是一样

文档:http://symfony.com/doc/current/configuration/external_parameters.html

【问题讨论】:

  • 在你的参数中:没有定义database_password
  • 为什么database_password 不在你的parameters.yml 中?
  • 是的,但你在哪里称呼它?
  • 您使用的是哪个网络服务器?你是怎么设置环境变量的?
  • CLI 没问题,现在检查网络服务器(apache o nginx)并检查您是否已重新启动网络服务器。希望对您有所帮助

标签: php symfony


【解决方案1】:

如果使用phpinfo()php -i,变量出现在$_ENV[] (也就是说环境变量没有与服务器的环境变量合并)尝试在app_dev.php添加这一行

$_SERVER = array_merge($_SERVER, $_ENV);

【讨论】:

    【解决方案2】:

    您应该“导出”shell 变量。类型:

    导出 SYMFONY__DATABASE__PASSWORD='root'

    【讨论】:

    • 已经导出,echo $SYMFONY__DATABASE_PASSWORD返回好值
    猜你喜欢
    • 2021-09-03
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多