DbHelp.ru
Маленький Yii блог
Комментарии
Wa1deMar: У меня при регестрации выбивает ошибку Пользователь н...
Гость: а где исходники? http://www.yii.dbhelp.ru/files/step8/blog-8.zip
Гость: так я выставил N=1 и получается что роботу надо раз 10 про...
r-bezhenar: Не знал куда написать. Подскажите пожалуйста как лучш...
TranceSmile: Конечно так удобней. Чем выводить всю модель.



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Настройка Yii на хостинге без поддержки PDO

Рубрика: Мелкие заметки на тему Yii

Оцените эту статью:

Рейтинг: 0.00 (0)
13 Апр. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Yii Framework Blog img http://dbhelp.rupdo Была у меня мысль когда то запустить свой блог на одном интересном бесплатном хостинге. Посмотрев на конфигурацию сервера и требования Yii – я понял что блог встанет без проблем.

Набравшись терпения при закачке файлов на сервер (все мы знаем скорость работы забугровых фри хостингов) я стал ожидать. Когда все файлы были загружены, дамп базы поднят, а конфиг настроен – блог все равно не работал...

---

Сравнив немного конфигурацию своего локального сервера (Zend Server) и хостинга (000webhost.com) я понял что нуждаюсь в поддержке PDO. К сожалению негде в документации по Yii этого сказано не было, но без поддержки PDO – работать с базами MySQL/MsSql/PostgreSQL вы не сможете. Я написал в поддержку хостинга и получил ответ что ради меня они PDO MySQL ставить не будут.

Немного излив душу и спросив совета на форуме я начал ковырять расширение PHPPDO от Николая Ананьева и надстройку над ним от автора блога (http://oleg.in-da.ru/). Данное расширение позволяет эмулировать модуль PDO при его отсутствии на хостинге что само по себе является интересным решением. Честно сказать корректность работы с базами отличными от MySQL – я не гарантирую, но с мускулом у меня проблем не возникло.

Установка

  1. Скачать это самое расширение PHPPDO [зеркало]
  2. Распаковать архив в каталог 'protected/extensions'
  3. Изменить 'config/main.php':
    'db'=>array(      
    'class'=>'application.extensions.PHPPDO.CPdoDbConnection', ... ),


Естественно как вы понимаете PHPPDO это эмулятор и он работает намного медленнее самого оригинала. Используйте данный подход только в том случае если вы сильно привязаны к хостингу и вариантов добавить родное pdo там нет.

Прямая ссылка на Extension PHPPDO - http://www.yiiframework.com/extension/phppdo/



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Иногда полезно смотреть на текущюю стадию разработки нашего любимого Yii Framework-а. next Можно заметить что версия 1.0.10 уже ... "Yii::registerAutoloader()"

  2. Подсветка php кода на страницах блога — штука невероятно удобная. Давайте в двух словах разберемся как я подкрутил её у ... "Подсветка синтаксиса"

  3. С целью легкого интегрирование фреймворка со сторонними библиотеками, разработчики Yii не используют в коде глобальных функций. В Yii все ... "Используем функции быстрого доступа (глобальные функции в Yii)"

[guest] Константин

Было сказано: Вторник, 28 Апрель 2009

Про требование - PDO есть упоминание буквально везде :) Начиная от доков, заканчивая страничкой проверки конфигурации сервера (которая идет в скачанном yii)

Но эмуляция ПДО - это супер, молодец что нашел решение! Может как-нибудь пригодится.

[guest] Юрий

Было сказано: Среда, 10 Июнь 2009

Здравствуйте,

имею проблему при пользовании Active Record: на хостинге включён PDO, однако отсутствует драйвер pdo_MySQL. прописка в конфиге 'class'=>'application.extensions.PHPPDO.CPdoDbConnection' и установка в 'extensions' PHPPDO не помогает - идет ошибка «CDbConnection failed to open the DB connection: could not find driver»

phpinfo - http://yy73.byethost7.com/
requirements - http://yy73.byethost7.com/yii/requirements/
config - http://yy73.byethost7.com/bbb/main.php.txt

что делать? переписывать getDbConnection() ? если да, то как ?

[adm] zolter

Было сказано: Среда, 10 Июнь 2009

А нет возможности программно отключить поддержку pdo на хостинге? Я знаю что у некоторых людей возникали конфликты и phppdo просто не схватывал управление драйвером по умолчанию.

[adm] zolter

Было сказано: Среда, 10 Июнь 2009

Я бы посоветовал вам обратиться на сайт разработчика расширения (http://oleg.in-da.ru/projects/yii/rasshirenie_phppdo) но судя по коментам вы ему уже писали.

[guest] Гость

Было сказано: Среда, 15 Июль 2009

Не совсем в тему, но на счет долгой закачки файлов.. пользуйтесь скриптами ))

// архивируем
system("tar -czf file.tgz * ");

// распакуем
system("tar -xzf file.tgz");

а по ftp гоняем только архивы )))

[guest] Гость

Было сказано: Четверг, 26 Ноябрь 2009

а как можно программно отключить pdo на хостинге? Нашел шикарный бесплатный хостинг, там включено PDO,SQLite PDO, а для MySQL-нет(
написал им, жду чего ответят..

[adm] zolter

Было сказано: Четверг, 26 Ноябрь 2009

Чтобы включить PDO MySQL это самому хостеру надо пересобрать php на сервере. Сами вы не как это не сделаете.

Как вариант - эмулировать pdo с помощью приёма, описанного в этой статье. Но в этом случае скорость работы сайта немного упадет.

[guest] Гость

Было сказано: Четверг, 26 Ноябрь 2009

Это-то я понял..я не про это)

Было сказано: Среда, 10 Июнь 2009

А нет возможности программно отключить поддержку pdo на хостинге?

а вот про это..

[adm] zolter

Было сказано: Четверг, 26 Ноябрь 2009

Именно отключить? Только пересобрав php с соответствующей опцией. Т.е. вы как владелец аккаунта вирт.сервера такого сделать не сможете. А чем вам мешает pdo? :)

[guest] Гость

Было сказано: Четверг, 26 Ноябрь 2009

по идее, ситуация как у Юрия несколькими комментариями выше..

[adm] zolter

Было сказано: Четверг, 26 Ноябрь 2009

Почитайте комментарии на странице http://oleg.in-da.ru/projects/yii/rasshirenie_phppdo , может поможет.

Balian

Было сказано: Четверг, 26 Ноябрь 2009

Спасибо, там вроде действительно удалось решить проблему
Но я уже нашел беслптный хостинг с PDO =)

[guest] Yrii

Было сказано: Воскресенье, 29 Ноябрь 2009

Всё подключено по инструкции, но всеровно выдаём ошибку: YiiBase::include(PHPPDO.php) [<a href='function.YiiBase-include'>function.YiiBase-include</a>]: failed to open stream: No such file or directory
Файл PHPPDO.php находится в том же каталоге, что и CPdoDbConnection.php. не подскажите че делать?

[guest] zolter

Было сказано: Вторник, 01 Декабрь 2009

Скорее всего с путём все таки напутали..

[guest] ZooM

Было сказано: Среда, 09 Декабрь 2009

Но, и в итоге заработал фремворк на этом free-хостинге? =)

[guest] zolter

Было сказано: Среда, 09 Декабрь 2009

Уву. Под эмуляцией PDO.

[guest] Гость

Было сказано: Пятница, 27 Август 2010

Супер!

Оставить комментарий


Код:
Имя: