我已经配置了服务器。最后,我得到了这个问题来建立联系。
这是新的 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 变量?