Всем привет. Перенес простенький легкий сайт, созданный на drupal 7 с локалхоста на хостинг (ru center). Как обычно залил архив, распаковал, импортировал бд (средствами phpMyAdmin), но возикла ошибка (Fatal error: Class 'PDO' not found). Мне подсказали, что надо подключить модуль pdo_mysql ну и пару других (тк напрямую переопределить extension нельзя) и ошибка исчезла, но возникла новая - PDOException: SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'TRADITIONAL' in lock_may_be_available(). Подскажите, кто знает, как ее решить и как она могла возникнуть - при переносе сайта или просто хостинг не отвечает требованиям drupal 7?
Комментарии
php собран без PDO. Скорее всего нужно будет менять хостинг,
сделайте вывод php info и посмотрите, есть ли вообще разделы с ним (PDO)
Так я подключил модуль pdo_mysql через панель управления хостингом, без него выдает ошибку, что класс PDO не найден - значит он все-таки используется?
Сапорт хостинга искали проблему, но не нашли и предложили перезалить и обновить бд
А как сделать вывод php info?
Кроме pdo_mysql есть и pdo просто :).
<?
phpinfo();
?>
Просто pdo там в списке расширений для модуля php нет, только pdo_mysql, pdo_pgsql и pdo_sqlite
а код вставить в index.html? я нуб
p.s. вроде бы версия mysql старше 5.0, php v5.2.10
Попробовал установить drupal 7 заново, стерев файлы переносимого сайта и базу данных, но возникает та же ошибка:
Failed to connect to your database server. The server reports the following message: SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'TRADITIONAL'.
создайте файл info.php и в него вставьте код.
To enable PDO configure --enable-pdo and --with_pdo_mysql
Так что нужны 2 модуля пдо. В общем стучи хостеру.
Какой хостинг и какая версия PHP возможна на нем? Ну так, на всякий случай
Хсотинг ru-center (nic.ru), версия php 5.2.10.
Хостеру уже позвонил. Специалист попросил подождать, а через минут 10 сказал, что они пока не поняли, в чем проблема))
Расширения модуля php есть такие:
apc bcmath bz2 calendar ctype curl dba dbase dom eaccelerator exif filter ftp gd gd_ext gettext hash iconv imagick imap json ldap mbstring mcrypt mhash ming mysql mysqli openssl pdo_mysql pdo_pgsql pdo_sqlite pgsql posix recode session simplexml soap sqlite templates tidy tokenizer wddx xmlreader xmlwriter xsl zend optimizer zip zlib
Из них включены: ctype, curl, dom, filter, ftp, gd, gettext, hash, iconv, imap, json, mbstring, mhash, mysql, pdo_mysql, posix, session, simplexml, tokenizer, xsl, zend optimizer, zlib
Просто pdo не видно
Это цитата с офф рекомендаций Drupal 7
сам работаю на nic.ru на 5.2.10 (поэтому и интересовался), семерка работает без проблем.
2 UnnamedNETUA: Возможно, это консольная команда?
2 heap.ster: в чем я мог ошибиться при установке друпал 7? Я создал нового пользователя для доступа к базе данных, новую бд, залил официальный дистрибутив в чистую директорию, прошел по ссылке и на шаге настроек доступа к бд возникает описанная ошибка.
UPD: установил флажки, как на скриншоте, ошибка осталась та же.
1. Покажи phpinfo.
2. Покажи скриншот включенных модулей для php, как парой комментов выше.
если посредством пунктов 1-2 ничего не прояснится, удали все с хостинга, удали базу. Включи модули php нужные, и начинай установку заново.
Вот скриншоты
В этом разделе phpinfo информация у нас совпадает, а модулей PHP у вас подключено еще больше.
Что phpinfo пишет в разделе PDO?
да, это часть консольной команды, для сбора ПХП из исходников. Но для вас это всего значит что должны быть включены модули pdo и pdo_mysql
2 heap.ster: То же самое, что и на скриншоте.
2 UnnamedNETUA: Как включить модуль pdo?
Попробуйте заново установить семерку на абсолютно пустой хостинг и базу? проблема остается?
к хостеру.
Да, остается.
К хостеру уже обращался, сказали, что будут решать, но это было в пятницу и разумеется ничего не изменилось)
Вопрос решился переносом на сервер, на котором стоит mysql v5. Думал, что в ру-центре уже на всех серверах v5+, лол.
Всем спасибо за помощь.
LOL, у меня на серваке стоит древний древний мускул, и то 5 версии.
Вряд ли дело в одной базе, у меня в руцентре на 201 семерка крутится без проблем.
Большие компании имеют большой бардак на серверах. Яркий пример - sweb.ru. Думаю, что в ру-центре тоже самое
в ру-центре и с рф-ными доменами бардак
Была такая же ошибка, помогло изменение драйвера БД с mysql на mysqli. Правда теперь вылазит Internal Server Error - 500, но это уже вроде совсем другая история)
Была проблема Fatal error: Class 'PDO' not found in ...
поставил галочку в расширениях модуля php в настройках хоста в своей панели юзера.
(nic.ru) по умолчанию не все расширения php используют, их надо самому подкл себе