#php #ubuntu #kohana
#php #ubuntu #kohana
Вопрос:
Проблема
Я установил beansbooks и я на последнем шаге, но когда я захожу на localhost / install, я получаю следующую ошибку:
Произошла неустранимая ошибка: Session_Exception [ 1]: ошибка чтения данных сеанса. исключение ‘ErrorException’ с сообщением ‘mysql_select_db() ожидает, что параметр 2 будет ресурсным, заданным логическим значением’ в /var/www /html/modules/database/classes/kohana/database/mysql.php:105 Трассировка стека: #0 [внутренняя функция]: Kohana_Core::error_handler(2, ‘ mysql_select_db…’, ‘/var/www/html/m…’, 105, Массив) #1 /var/www/html/modules/database/classes/kohana/database/mysql.php (105): mysql_select_db(‘kohana’, false) #2 /var/www/html/application/classes/database/mysql.php (75): Kohana_Database_MySQL->_select_db(‘kohana’) #3 /var/www/html/modules/database/classes/kohana/database/mysql.php (430): Database_MySQL-> connect() #4 /var/www/html/modules/database/classes/kohana/database.php (478): Kohana_Database_MySQL-> escape(‘5c8da306617b91-…’) #5 [внутренняя функция]: Kohana_Database-> quote(‘5c8da306617b91-…’) #6 /var/www/html/modules/database/classes/kohana/database/query.php (190): array_map(массив, Array) #7 /var/www/html/modules/database/classes/kohana/database/query/builder/select.php (413): Kohana_Database_Query->compile(Object(Database_MySQL)) #8 /var/www/html/modules/database/classes/kohana/база данных/запрос.php (228): Kohana_Database_Query_Builder_Select->скомпилировать(объект (Database_MySQL))
9 /var/www/html/modules/database/classes/kohana/session/database.php (131):
Kohana_Database_Query->выполнить(Object(Database_MySQL)) #10 /var/www/html/modules/database/classes/kohana/session/database.php (111): Kohana_Session_Database->_regenerate() #11 /var/www/html/system/classes/kohana/session.php (300): Kohana_Session_Database->_read(NULL) #12 /var/www/html/system/classes/kohana/session.php (125): Kohana_Session->read(NULL) #13 /var/www/html/modules/database/classes/kohana/session/database.php (74): Kohana_Session->__construct(массив, NULL) #14 /var/www/html/system/classes/kohana/session.php (54): Kohana_Session_Database->__construct(массив, NULL) #15 /var/www/html/application/classes/controller/view.php (49): Kohana_Session::instance() #16 /var/www/html/application/classes/controller/exception.php (27): Controller_View-> before() #17 [внутренняя функция]: Controller_Exception->before() #18 /var/www/html/system/classes/kohana/request/client/internal.php (103): Метод отражения-> вызов(Object(Controller_Exception)) #19 /var/www/html/system/classes/kohana/request/client.php (64): Kohana_Request_Client_Internal->execute_request(объект (запрос)) #20 /var/www/html/system/classes/kohana/запрос.php (1154): Kohana_Request_Client->выполнить (объект (запрос)) #21 /var/www/html/application/classes/kohana/exception.php (25): Kohana_Request-> выполнить() #22 [внутренняя функция]: Kohana_Exception::обработчик(Object(Session_Exception)) #23 {main} ~ SYSPATH/classes/kohana/session.php [ 325 ]
Как мне решить эту проблему?
Система
php5
Ubuntu 14.04
Mysql 5.5
apache2
Комментарии:
1. вы добавили свою конфигурацию на основе этого: github.com/system76/beansbooks/blob/master/application/classes /… ?
Ответ №1:
У вас проблемы с подключением к базе данных, потому что ресурс не возвращается, просто ошибка.
У вас есть несколько вариантов:
- повторная проверка данных подключения в конфигурации
- переключение на драйвер базы данных PDO
- быстрый взлом в библиотеке:
в MODPATHdatabaseclassesKohanaDatabaseMySQL.php
методе connect()
перед тем, как: $this->_select_db($database);
вы добавляете:
if(!$this->_connection)
throw new Database_Exception(':error',
array(':error' => mysql_error()),
mysql_errno());
ПРИМЕЧАНИЕ: Существует проблема с PDO, который не поддерживает автоматическое обнаружение модели. Но для отладки соединения этого достаточно.
Хм, это можно сделать в соответствии с уровнем техники, без изменения модулей:
создать файл: APPPATHclassesDatabaseMySQL.php
class Database_MySQL extends Kohana_Database_MySQL{
protected function _select_db($database) {
if(!$this->_connection)
throw new Database_Exception(':error',
array(':error' => mysql_error()),
mysql_errno());
return parent::_select_db($database);
}
}
Комментарии:
1. Да, я все это сделал, и я продвинулся немного дальше, теперь я также создал пример здесь: github.com/system76/beansbooks/issues/277 Он жалуется на отсутствие некоторых account_types, которые не были созданы в процессе установки.