Fatal error: Only variables can be passed by reference при переносе на локальный хостинг

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

Аватар пользователя Омск Омск 2 июня 2020 в 9:45

Переношу сайт на Drupal 7 на локальный хостинг. Установил на OpenServer 5.2.2 и при запуске вот такая ошибка появляется:
Fatal error: Only variables can be passed by reference in C:\www\OSPanel\domains\***\sites\all\modules\contrib\commerce\modules\cart\commerce_cart.module on line 1344

В указанной строке этот код:
// Allow other modules to specify what properties should be compared when
// determining whether or not to combine line items.
drupal_alter('commerce_cart_product_comparison_properties', $comparison_properties, clone($line_item));

На хостинге версия PHP от 5.2 до 7.4, на локальном хостинге 7.1.12

Установил PHP 7.4 VC15 x64 Non Thread Safe (2020-May-12 15:28:31), но с ним сервер не запускается, а если запускается, то на странице ошибка "504 Gateway Time-out".

Когда удаляю папку с модулем commerce_cart, сайт запускается, но корзина не работает.

Как это можно исправить?

Лучший ответ

Аватар пользователя ivnish ivnish 2 июня 2020 в 11:04

Установите на локалке ту же версию PHP, что и на хостинге. И да, PHP 7.4 Drupal 7 пока не поддерживает

Комментарии

Аватар пользователя charOFF charOFF 2 июня 2020 в 10:06

Судя по всему у вас не самая последняя версия commerce. Лучше всего обновите commerce до последней версии. Или понизьте версию php до 5.6. Может и в 7.0 будет работать, точно не помню с какой версии эта ошибка появляется. Третий аргумент в drupal_alter передается по ссылке, а там у вас сейчас не переменная, а функция clone(), в последних версиях php это не проходит.