2014-01-09 5 views
0

Я собираюсь получить некоторый опыт работы с Yii, поэтому я настроил среду XAMPP (1.8.1) для Linux и установил структуру Yii. Прогресс, основанный на книге под названием «Разработка веб-приложений с Yii и PHP»и есть пример, чтобы установить соединение с базой данных и проверить, что с помощью консоли Yii, выполнив следующий код:PDO драйвер для XAMPP на Linux

echo Yii::app()->db->connectionString; 

конечно, ранее я создал соответствующую базу данных MySQL и настроить соединение строки в соответствующие main.php и console.php, но я получаю сообщение об ошибке:

exception 'CDbException' with message 'CDbConnection failed to open the DB connection: could not find driver' in /work/webroot/yii/framework/db/CDbConnection.php:382

Исходя из требования Yii, для PDU для PDT установлен флажок PDO. Если я проверить HTML версию phpinfo он говорит:

PDO Driver for MySQL: Enabled

и

Client API version: mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $

Однако, если я запускаю phpinfo из Yii утешать дает следующий результат:

PDO support => enabled

PDO drivers =>

Итак, для меня кажется, что драйвер PDO отсутствует. Я прочитал несколько тем форума о том, как загружать драйверы PDO для Linux и как изменить php.ini для использования этих драйверов, но я думаю, что это решение работает для среды CLI, а не для XAMPP.

Может кто-нибудь помочь мне здесь, как я могу настроить драйвер PDO для базы данных MySQL на XAMPP? Я использую рабочий стол Ubuntu 13.10.

ответ

1

Я играл некоторое время и нашел решение с помощью нескольких тем форума.

Чтобы решить следующую проблему драйвера ...

'CDbException' with message 'CDbConnection failed to open the DB connection: could not find driver'

... Я должен был установить правильный разъем. Я побежал следующее:

sudo apt-get install php5-mysql 

После этого я попытался проверить строку подключения еще раз с помощью консоли Yii, запустив код:

echo Yii::app()->db->connectionString; 

Но на этот раз он дал мне другое электронное письмо об ошибке:

'CDbException' with message 'CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Для решения этой проблемы я изменил свой файл main.php и console.php в каталоге/protected/config и заменил «localhost» на «127.0.0.1».

Исходя из PHP documentation, это необходимо, так как сокет MySQL Unix не должен использоваться с хостом или портом.

Это разрешило второе сообщение об ошибке, и я мог подключиться к моей базе данных.

Смежные вопросы