我最近向GoDaddy上传了一个Symfony2项目,但我无法访问它,因为我收到了消息:
An exception occured in driver: SQLSTATE[HY000] [1045] Access denied for user 'root'@'127.0.0.1' (using password: NO)
显然消息很清楚,所以我检查并重新检查了我的parameters.yml,消息甚至与我在那里的消息不匹配,我已经多次更改以尝试修复。这是我的parameters.yml:
parameters:
database_driver: pdo_mysql
database_host: localhost
database_port: null
database_name: database1
database_user: database1user
database_password: mytestpassword
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: en
secret: RandomTokenThatWillBeChanged
debug_toolbar: true
debug_redirects: false
use_assetic_controller: true
因此,错误消息并没有告诉我什么是我真正的问题,或者是从一些我尚未找到的缓存版本加载参数。关于其他可能导致的任何想法或者这个数据的缓存版本在哪里?
答案 0 :(得分:2)
开发Symfony应用程序时的最佳实践之一是 通过parameters.yml文件使其可配置。它包含 信息,例如数据库名称,邮件程序主机名和自定义 配置参数。
由于这些参数在您的本地计算机上可能有所不同,您的 测试环境,您的生产服务器,甚至之间 开发人员在同一个项目上工作,不建议存储 它在项目库中。相反,存储库应包含一个 具有合理默认值的paramaters.yml.dist文件,可用作 每个人的良好起点。
然后,每当开发人员开始处理该项目时, 必须使用parameters.yml.dist创建参数`.yml文件 作为模板。这很有效,但每当有新值时 添加到模板中,您必须记住更新主参数 相应地归档。
从Symfony 2.3开始,标准版附带了一个新的捆绑包 自动化繁琐的工作。每当你运行composer install时,a 如果参数.yml文件不存在且允许,则会创建它 您可以交互方式自定义所有值。而且,如果你使用 --no-interaction标志,它将默默回退到默认值 值。
http://symfony.com/blog/new-in-symfony-2-3-interactive-management-of-the-parameters-yml-file
那么,你的paramaters.yml不可能被paramaters.yml.dist覆盖吗?
您也可以尝试彻底清除缓存
在开发中:
php app/console cache:clear
生产中:
php app/console cache:clear --env=prod --no-debug