【发布时间】:2019-08-16 13:22:57
【问题描述】:
我有一个 Symfony 3 项目,它托管在 platform.sh 上。作为默认配置,它们为我提供了一个不受密码保护的数据库连接。我在文档中找到了以下几行,但无法理解它们的真正含义:
在任何一种情况下,您都需要服务凭证。为此,运行平台关系。这将提供类似于以下的输出:
database:
-
username: user
scheme: mysql
service: mysqldb
ip: 120.0.80.37
cluster: yuh7waly3uu6n-master-7rqtwti
host: database.internal
rel: mysql
path: main
query:
is_master: true
password: ''
port: 3306
表示可以在主机database.internal,用户user,空密码访问数据库关系。路径键包含数据库名称 main。其他值可以忽略。
写在这里:https://docs.platform.sh/configuration/services.html#obtaining-service-credentials
这是否意味着如果我想更改这些凭据,我需要在 services.yaml 文件中输入正确的密码,或者这只是服务器尝试连接的一种方式。如何将此空密码更改为安全密码?能不能通过环境变量来解决,还是改变services.yaml的方法是正确的?
【问题讨论】:
-
如果你有当前的 symfony(或自 3.4 起),那么默认使用 DATABASE_URL 环境变量。它在
config/packages/doctrine.yaml(或app/config/...)中被引用 -
@Jakumi,不幸的是,platform.sh 通过自己的 *.yaml 文件覆盖了 app_parameters 中默认的 Symfony 配置。所以,这样不行……
标签: database symfony security platform