Ошибка Php / kohana при запуске установочной части beansbooks

#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, которые не были созданы в процессе установки.