Drupal 6 на PHP7

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

Аватар пользователя Arturus Arturus 4 октября 2018 в 14:32

При переезде проекта на Drepal 6 на новый сервер с php7 получил сообщение
Notice: Trying to get property of non-object in /srv/http/includes/path.inc on line 50
в этой строке вижу код
<?php  $path_language $path_language $path_language $language->language;?>
Подскажите, как это вылечить?

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 5 октября 2018 в 9:08

Убер- только модули адаптированы , можно выбросить - но не суть, views пофиксин

P.S. Это рабочий адопт используется на сайтах.

Аватар пользователя sas@drupal.org sas@drupal.org 5 октября 2018 в 9:14

Учти - это update, если сайта нет - сначала поставь коробку а потом обнови файлы из сборки.
Если будут вопросы для оперативной связи пиши скайп / летегу.

Аватар пользователя Arturus Arturus 6 октября 2018 в 5:21

Сейчас выдает
Notice: unserialize(): Error at offset 499 of 986 bytes in /srv/http/includes/bootstrap.inc on line 817

Notice: unserialize(): Error at offset 143 of 291 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 135 of 267 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 125 of 224 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 42 of 83 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 20 of 37 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 43 of 315 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 43 of 550 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 43 of 550 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 43 of 550 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 43 of 315 bytes in /srv/http/includes/bootstrap.inc on line 559
...

Аватар пользователя Arturus Arturus 6 октября 2018 в 6:18

Warning: Cannot modify header information - headers already sent by (output started at /srv/http/includes/bootstrap.inc:559) in /srv/http/includes/bootstrap.inc on line 734

Warning: Cannot modify header information - headers already sent by (output started at /srv/http/includes/bootstrap.inc:559) in /srv/http/includes/bootstrap.inc on line 735

Warning: Cannot modify header information - headers already sent by (output started at /srv/http/includes/bootstrap.inc:559) in /srv/http/includes/bootstrap.inc on line 736

Warning: Cannot modify header information - headers already sent by (output started at /srv/http/includes/bootstrap.inc:559) in /srv/http/includes/bootstrap.inc on line 737

Notice: Trying to get property of non-object in /srv/http/includes/path.inc on line 63

Аватар пользователя sas@drupal.org sas@drupal.org 6 октября 2018 в 8:25
1

У Вас свой sites/default/settings из аповского надо добавить

if (!function_exists('ereg')) {
  function ereg($pattern, $subject, array &$matches = NULL) {
    return preg_match('%' . $pattern . '%', $subject, $matches);
  }
}
if (!function_exists('eregi')) {
  function eregi($pattern, $subject, array &$matches = NULL) {
    return preg_match('%' . $pattern . '%i', $subject, $matches);
  }
}
if (!function_exists('ereg_replace')) {
  function ereg_replace($pattern, $replacement, $string) {
    return preg_replace('%' . $pattern . '%', $replacement, $string);
  }
}
if (!function_exists('eregi_replace')) {
  function eregi_replace($pattern, $replacement, $string) {
    return preg_replace('%' . $pattern . '%i', $replacement, $string);
  }
}
if (!function_exists('split')) {
  function split($pattern, $subject, $limit) {
    return preg_split('%' . $pattern . '%', $subject, $limit);
  }
}
if (!function_exists('spliti')) {
  function spliti($pattern, $subject, $limit) {
    return preg_split('%' . $pattern . '%i', $subject, $limit);
  }
}

+

Изменена секция

/**
 * PHP settings:
 *
 * To see what PHP settings are possible, including whether they can
 * be set at runtime (ie., when ini_set() occurs), read the PHP
 * documentation at http://www.php.net/manual/en/ini.php#ini.list
 * and take a look at the .htaccess file to see which non-runtime
 * settings are used there. Settings defined here should not be
 * duplicated there so as to avoid conflict issues.
 */

ini_set('arg_separator.output',     '&amp;');
ini_set('magic_quotes_runtime',     0);
ini_set('magic_quotes_sybase',      0);
ini_set('session.cache_expire',     200000);
ini_set('session.cache_limiter',    'none');
ini_set('session.cookie_lifetime',  2000000);
ini_set('session.gc_maxlifetime',   200000);
#ini_set('session.save_handler',     'user');
ini_set('session.use_cookies',      1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid',    0);
ini_set('url_rewriter.tags',        '');
Аватар пользователя Orion76 Orion76 6 октября 2018 в 9:07

Определенная версия ПО (Программное Обеспечение)(в данном случае Drupal 6) разрабатывается и тестируется на определенном окружении (php, mysql и т.п.)
Разработчики могут гарантировать более-менее стабильную работу ПО только в том окружении, в котором это ПО тестировалось и показало удовлетворительные результаты тестирования.

Если вы решили использовать ПО не в том окружении для которого разрабатывалось данное ПО с использованием костылей, могу дать несколько советов:
1.Начинайте регулярно употреблять седативные средства (валокордин и прочие фенобарбиталы). Ибо когда в самый неожиданный момент и с самыми неожиданными последствиями все начнет работать не так как ожидалось, вам понадобится как минимум "холодная голова", как максимум чтобы не пришлось задействовать саппорт "Скорая медицинская помощь" для восстановления жизненных функций собственного организма.
2.Учредите статью расходов для восстановление работоспособности сайта при сбоях из-за костылезации его эксплуатации, и начинайте накапливать на ней ден.средства.
3.Застрахуйте бизнес и начинайте выплачивать страховые взносы.
4.На всякий пожарный, вывезите родных и близких в безопасное место.

или

возьмите нормальный облачный сервер, обеспечьте на нем необходимое для сайта окружение и забудьте про первую часть этого комментария.
Сейчас облачные выделенные сервера стоят копейки.

Аватар пользователя Arturus Arturus 6 октября 2018 в 16:50

Проверяю таблицу variable на ошибки, выводит пустые строки

foreach($result as $variable){

$variables[$variable->name] = @unserialize($variable->value);

if ($variables[$variable->name] === FALSE) {
print $variable->name . '=' . $variable->value . '***
';

}
}

Аватар пользователя Arturus Arturus 7 октября 2018 в 3:14

Критические ошибки исчезли, но остались
Notice: unserialize(): Error at offset 143 of 291 bytes in /srv/http/includes/bootstrap.inc on line 559

Notice: unserialize(): Error at offset 135 of 267 bytes in /srv/http/includes/bootstrap.inc on line 559
....
Можно авторизоваться, можно зайти в админку.

Подключение mysqli прошло без проблем

name д.б. FALSE - хочу вывести только проблемные записи
https://ru.stackoverflow.com/questions/862775/%D0%9E%D1%88%D0%B8%D0%B1%D...

Аватар пользователя Arturus Arturus 7 октября 2018 в 13:41

Честно говоря не понимаю почему у меня возникает Notice: unserialize(): Error at offset 143 of 291 bytes
Сравнил значения в таблицах variable на старох хостинге и на новом, все идентично. Кодировки таблиц тоже.