Drupal 7 не дружит с PHP 5.6 ?

Главные вкладки

Аватар пользователя DiGun DiGun 28 января 2016 в 15:11

После того как админы на хостинге подняли версию PHP с 5.3 до 5.6, на всех сайтах на Drupal 7 появилась ошибка при сохранении ноды.

PDOException: в функции field_sql_storage_field_storage_write() (строка 451 в файле /usr/home/user/data/www/сайт.pp.ua/modules/field/modules/field_sql_storage/field_sql_storage.module).
На сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже

Ошибка появляется не всегда, но всегда текст ноды обрезается, причём один и тот же текст при сохранении может обрезаться по разному. Нода частично сохраняется, но остаётся неопубликованной. Из режима редактирования не удаляется. Удалось удалить через admin/content.
При этом сайты на Drupal 8 на этом же хостинге работают без проблем.

Есть идеи в чём может быть причина?

Лучший ответ

Аватар пользователя DiGun DiGun 29 января 2016 в 14:30
1

Начал копать в сторону настроек PHP т.к. часть параметров в 5.6 помечены как устаревшие.
Наткнулся тут на общие рекомендации по php.ini

magic_quotes_gpc =0
register_globals =0
session.auto_start =0
mbstring.http_input =pass
mbstring.http_output =pass
mbstring.encoding_translation = 0

после того как добавил в php.ini эти строки глюки вроде ушли. Проблемы судя по всему были в параметре mbstring.
Всем спасибо.

Комментарии

Аватар пользователя tlito tlito 30 января 2016 в 10:25

на джино при переключении на пхп 5.6 у меня были глюки на сайтах д7, а на д8 - нет. там сервер апачи + нгиникс.
на своей впс у меня нгиникс и пхп-фпм пхп 5.6 там глюов нет ни на д8 и на д7.
так что стоит свою впс пробовать ну или писать хостерам за директивами в пхп.ини если есть доступ

Аватар пользователя marazmus marazmus 29 января 2016 в 13:38

Частенько это связано с кодировкой в файлах модулей, особенно самописных.
Попробуйте залить чистый D7 и проверить те же тексты.
Если работает, продолжите со своими сайтами - отключая для проверки кастомные модули, и особенно самописы.

Аватар пользователя DiGun DiGun 29 января 2016 в 14:30
1

Начал копать в сторону настроек PHP т.к. часть параметров в 5.6 помечены как устаревшие.
Наткнулся тут на общие рекомендации по php.ini

magic_quotes_gpc =0
register_globals =0
session.auto_start =0
mbstring.http_input =pass
mbstring.http_output =pass
mbstring.encoding_translation = 0

после того как добавил в php.ini эти строки глюки вроде ушли. Проблемы судя по всему были в параметре mbstring.
Всем спасибо.