如何在 phalcon 配置中修复"未定义的索引:db_host"



我已经配置了服务器。最后,我得到了这个问题来建立联系。

这是新的 Linux 服务器,根据 http://157.245.105.194/test.php

让我知道在以下位置给出的代码中出了什么问题:https://docs.google.com/document/d/1M0iqC4_5kGQVgR6aKhKFAwxbpwTOyYN7PyEgjBfL3mQ/edit?usp=sharing

在 http://157.245.105.194/styleogram/fs/site/wwwroot/public/

我们得到:

===========
Notice: Undefined index: db_host in /var/www/html/styleogram/fs/site/wwwroot/app/config/config.php on line 56
Notice: Undefined index: db_user in /var/www/html/styleogram/fs/site/wwwroot/app/config/config.php on line 57
Notice: Undefined index: db_password in /var/www/html/styleogram/fs/site/wwwroot/app/config/config.php on line 58
Notice: Undefined index: db_name in /var/www/html/styleogram/fs/site/wwwroot/app/config/config.php on line 59
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO)' in /var/www/html/styleogram/fs/site/wwwroot/app/config/config.php:60 
Stack trace: 
#0 [internal function]: PDO->__construct('mysql:host=;dbn...', NULL, NULL, Array) 
#1 [internal function]: PhalconDbAdapterPdo->connect(Array) 
#2 /var/www/html/styleogram/fs/site/wwwroot/app/config/config.php(60): PhalconDbAdapterPdo->__construct(Array) 
#3 [internal function]: {closure}() 
#4 [internal function]: PhalconDiService->resolve(NULL, Object(PhalconDiFactoryDefault)) 
#5 [internal function]: PhalconDi->get('db', NULL) 
#6 [internal function]: PhalconDi->getShared('db') 
#7 [internal function]: PhalconMvcModelManager->_getConnection(Object(Article), NULL) 
#8 [internal function]: PhalconMvcModelManager->getReadConnection(Object(Article)) 
#9 [internal function]: PhalconMvcModel->getReadConnection() 
#10 [internal function]: PhalconMvcModelQuery->_executeSelect(Array, Array, NU in /var/www/html/styleogram/fs/site/wwwroot/app/config/config.php on line 60
===========

您看到的错误是因为您的超全局$_SERVER不包含您在代码中查找的元素。您可以在您发布的phpinfo()页面中轻松看到这一点(查看 Apache 信息部分(。

$connection = new MysqlAdapter(
[
"host"     => $_SERVER['db_host'],
"username" => $_SERVER['db_user'],
"password" => $_SERVER['db_password'],
"dbname"   => $_SERVER['db_name']
]
];

您可以删除对$_SERVER数组的引用,并使用包含安装实际信息的字符串。例如,$_SERVER['db_host']可能为您localhost

执行这些替换后,请检查错误是否仍然存在 - 如果没有,则表示您已正确连接到数据库。

您还可以使用 Phalcon\Config 对象来存储配置数据,例如上面定义的数据库连接参数,而不是在$_SERVER数组中设置它们。

或者,如果您希望此信息位于$_SERVER数组中,则必须在 apache 信息的虚拟主机中使用SetEnv

如何在 apache 中使用 setEnv 变量?

相关内容

  • 没有找到相关文章

最新更新