Здравствуйте,
Пытаюсь переместить Drupal сайт с хостинга на новую VPS. На хостинге установлена старая версия Drupal 7.31, сделал дамп SQL, копию папки sites, и все это переместил на новую VPS на Ubuntu 16.04, PHP5.6, Apache 2.4, MariaDB. На VPS создал чистую базу, восстановил в нее дамп старой базы, развернул новый Drupal 7.53 и положил старую папку sites в него. При попытке сделать обновление по адресу: http://site.com/update.php, вываливается гора ошибок не могу понять что с ними делать:
$mitem ) { if ( isset ($mitem ['link']['in_below']) ) { //$kill_neigh = true; } if ( count ( $mitem ['below'] ) ) { if ( $mitem ['link']['in_active_trail'] ) { menu_block_active_trail_kill_unused ( $tree[$key]['below'] ); } else { $tree[$key]['below'] = array (); } } } if ( $kill_neigh ) { foreach ( $tree as $key => $mitem ) { if ( $mitem ['link']['plid'] != 0 && !$mitem ['link']['in_active_trail'] ) { unset ( $tree[$key] ); } } } } function menu_block_active_trail_form_alter ( &$form, &$form_state, $form_id) { if ( $form_id == 'block_admin_configure' ) { if ( $form ['module']['#value'] == 'menu_block' ){ $hu = array(); $hu['#type'] = 'checkbox'; $hu['#title'] = t('Hide unactive links of this tree.'); $hu['#default_value'] = variable_get ( "menu_block_".$form['delta']['#value']."_del_unused", false ); $hu['#states']['visible'][':input[name=display_options]']['value'] = 'advanced'; $key = 'sort'; $keys = array_keys($form['settings']); $vals = array_values($form['settings']); $insertAfter = array_search($key, $keys); $keys2 = array_splice($keys, $insertAfter); $vals2 = array_splice($vals, $insertAfter); $keys[] = 'del_unused'; $vals[] = $hu; $s = array_merge(array_combine($keys, $vals), array_combine($keys2, $vals2)); $form ['settings'] = $s; $form['#submit'][] = 'menu_block_active_trail_block_configure_submit'; //dsm ( $form ); } } } function menu_block_active_trail_block_configure_submit ( $form, &$form_state ) { //dsm ( $form_state ); variable_set ( "menu_block_".$form_state['values']['delta']."_del_unused", $form_state['values']['del_unused'] ); } function menu_block_active_trail_get_node_tids ( $nid, $vid = 0 ) { $query = db_select ( 'taxonomy_index', 'ti' ); $query -> join ( 'node', 'n', 'n.nid = ti.nid' ); $query -> fields ( 'ti', array ( 'tid' )); if ( $vid ) { $query -> join ( 'taxonomy_term_data', 'ttd', 'ttd.tid = ti.tid' ); if ( !is_numeric ( $vid )) { $query -> join ( 'taxonomy_vocabulary', 'tv', 'tv.vid = ttd.vid' ); $query -> condition ( 'tv.machine_name', $vid, '=' ); } else { $query -> condition ( 'ttd.vid', $vid, '=' ); } } $query -> condition ( 'n.nid', $nid, '=' ); $ret = array (); $ans = $query -> execute (); while ( $tid = $ans -> fetchAssoc () ) { $ret [] = $tid['tid']; } return $ret; } function menu_block_active_trail_get_node_type ( $nid ) { if ( !is_numeric ( $nid )) { return FALSE; } $type = db_select ( 'node', 'n' ) -> fields('n', array('type')) -> condition ( 'nid', $nid, '=' ) -> execute () -> fetchAssoc(); return $type['type']; } function menu_block_active_trail_find_active ( &$menu, $active_links ) { $has_active = false; foreach ( $menu as $key => $mitem ) { $is_active = false; foreach ( $active_links as $link ){ if ( $link == $mitem['link']['link_path'] ) { $is_active = true; } } $bel = false; if ( count ( $mitem ['below'] )) { $bel = menu_block_active_trail_find_active ( $menu[$key]['below'], $active_links ); } if ( $is_active || $bel ) { $has_active = true; $menu [$key]['link']['in_active_trail'] = true; if ( $bel && !$is_active ) { $menu [$key]['link']['in_below'] = true; } } } return $has_active; } function menu_block_active_trail_get_bytid () { $tids = array (); if ( arg(0) == 'node' && is_numeric ( arg(1))) { $tids = menu_block_active_trail_get_node_tids ( arg(1)); } foreach ( $tids as $i => $tid ) { $tids [$i] = 'taxonomy/term/'.$tid; } return $tids; } function menu_block_active_trail_display_has_type_filter ( $display, $type ) { //print_r ( $display ); $has_type_filter = 0; if ( isset ( $display -> display_options ['filters'] )) { foreach ( $display -> display_options ['filters'] as $key => $filter ) { //echo "
".$key; //print_r ( $filter ); if ( $key == 'type' ) { $has_type_filter = 1; if ( $filter ['table'] == 'node' && $filter ['field'] == 'type' ) { foreach ( $filter ['value'] as $value ) { //echo "
VAL = ".$value." TYPE = ".$type; if ( $type == $value ) { return true; } } } } } } return $has_type_filter; } function menu_block_active_trail_get_byviews () { $links = array (); if ( arg(0) == 'node' && is_numeric ( arg(1))) { $type = menu_block_active_trail_get_node_type ( arg(1)); $all_views = views_get_all_views (); foreach ( $all_views as $view ) { if ( !isset ( $view->disabled )) { $def_has_type_filt = 0; $def = NULL; foreach ( $view->display as $display ) { //echo "
".$display -> display_plugin; if ( $display -> display_plugin == 'default' ) { $def = $display; $def_has_type_filt = menu_block_active_trail_display_has_type_filter ( $display, $type ); if ( $def_has_type_filt === 0 ) { break; } } //echo "ASD"; if ( $display -> display_plugin == 'page') { //print_r ( $display ); //echo "1 = ".var_dump(display_has_type_filter ( $display, $node['type'] )). "2 = ".var_dump($def_has_type_filt); if ( menu_block_active_trail_display_has_type_filter ( $display, $type ) === true || $def_has_type_filt === true && menu_block_active_trail_display_has_type_filter ( $display, $type ) === 0 ) { if ( isset ( $display -> display_options ['path'] )) { $links [] = $display -> display_options ['path']; } else { $links [] = $def -> display_options ['path']; } } } } } } } return $links; } function menu_block_active_trail_get_byfront () { if ( drupal_is_front_page () ) { return array(''); } else { return array (); } } ?>
Что уже пытался сделать:
Восстанавливал более ранний дамп SQL из бэкапа.
Разворачивал ранние версии Drupal
Установил PHP 5.6, вместо 7 версии
Помогите пожалуйста решить данную проблему
Комментарии
Попробуйте залить "родные" файлы сайта. Запустить сайт, отработать крон и кеш.
Если будет все нормально - пробуйте обновлять.
Спасибо за ответ. С родными файлами такая же песня, попробовал запустить cron.php из директории, получил следующую ошибуку:
Undefined index: REMOTE_ADDR in /var/www/drupal/includes/bootstrap.inc on line 2901
PHP Notice: Undefined index: REMOTE_ADDR in /var/www/drupal/includes/bootstrap.inc on line 2901
PHP Notice: Undefined index: REMOTE_ADDR in /var/www/drupal/includes/bootstrap.inc on line 2901
PHP Notice: Undefined index: REMOTE_ADDR in /var/www/drupal/includes/bootstrap.inc on line 2901
PHP Notice: Undefined index: REMOTE_ADDR in /var/www/drupal/includes/bootstrap.inc on line 2901
PHP Notice: Undefined index: REMOTE_ADDR in /var/www/drupal/includes/bootstrap.inc on line 2901
PHP Notice: Undefined index: REMOTE_ADDR in /var/www/drupal/includes/bootstrap.inc on line 2901
PHP Notice: Undefined index: REMOTE_ADDR in /var/www/drupal/includes/bootstrap.inc on line 2901
PHP Parse error: syntax error, unexpected end of file in /var/www/drupal/sites/all/themes/mytheme/views-view-table--sli_page.tpl.php on line 49
Судя по ошибкам вы запускаете этот скрипт из shell, что конечно, не правильно - он рассчитан на запуск в контексте веб сервера.
Если вам надо запустить крон из cli, можно использовать drush.
Запустил через drush core-cron
Получил следующую информацию
drush должен быть новее или php старее.
тк версия сайта старая, то не факт что заработает сайт
ругается на /var/www/drupal/sites/all/themes/mytheme/views-view-table--sli_page.tpl.php
скорее всего битый архив.
Поставил новый drush 8.1.9 с ним команды drush cc all и drush cron отработали успешно, далее также через drush сделал обновление сайта с 7.31 до 7.53 тоже успешно. В итоге на главное странице получаю следующее Что делать, какие еще могут быть решения?
через drush сменить тему drush vset theme_default bartik, очистить кеш
не помогает к сожалению, главная страница не меняется
drush uli и по ссылке в админку.
что вы ведет? полный код
Выдает вот так:
http:// drupal/user/reset/11484734016/S_vTCWtl7_N6hXTXfUOmj2h8RoMKe1IU7o_qYWhzEZw/login
но если вместо drupal, вставить адрес сайта то получается вот так:
ищите файл или ноду, или блок в котором выводится код. это скорее всего блок. поэксперементируйте, отключая блоки.
можете поочередно отключать самописные модули чтобы найти где ошибка. обновите menu_trial drush dl
menu_trial
сначала запустите обновления БД..
Спасибо, буду думать, с drupal столкнулся в первые, с разработчиками этого сайта связи нет.
Единственное не могу понять логику, почему не работает сайт даже если полностью переносишь все файлы включая старую версию Drupal и базу в новое место?
А логи вероятно девственно чисты?
В логах apache есть:
[Wed Jan 18 13:59:44.521391 2017] [:error] [pid 15446] [client 111.111.111.111:53826] PHP Parse error: syntax error, unexpected end of file in /var/www/drupal/sites/all/themes/mytheme/views-view-table--sli_page.tpl.php on line 49, referer: http://site.ru/
[Wed Jan 18 14:14:59.691129 2017] [:error] [pid 14920] [client 111.111.111.111:54035] PHP Parse error: syntax error, unexpected end of file in /var/www/drupal/sites/all/themes/mytheme/views-view-table--sli_page.tpl.php on line 49
Код самого файла:
<?php
/**
* @file views-view-table.tpl.php
* Template to display a view as a table.
*
* - $title : The title of this group of rows. May be empty.
* - $header: An array of header labels keyed by field id.
* - $header_classes: An array of header classes keyed by field id.
* - $fields: An array of CSS IDs to use for each field id.
* - $classes: A class or classes to apply to the table, based on settings.
* - $row_classes: An array of classes to apply to each row, indexed by row
* number. This matches the index in $rows.
* - $rows: An array of row items. Each row is an array of content.
* $rows are keyed by row number, fields within rows are keyed by field ID.
* - $field_classes: An array of classes to apply to each field, indexed by
* field id, then row number. This matches the index in $rows.
* @ingroup views_templates
*/
if($rows[0]['field_sl_img_1'] || $rows[0]['field_sl_img'] || $rows[0]['field_sl_ico']) {
?>
<div class="slider">
<div class="s-cont">
<div class="midder-left"><div class="midder-right">
<div class="s-cont-in">
<?php foreach ($rows as $row_count => $row): ?>
<div class="s-cont-b s-cont-b-<?=$row_count?>">
<div>
<div><?=$row['field_sl_img_1']?></div>
<div><?=$row['field_sl_ico']?></div>
</div>
</div>
<?php endforeach; ?>
</div>
</div></div>
</div>
<div class="s-imgs">
<div class="s-imgs-in">
<?php foreach ($rows as $row_count => $row): ?>
<div class="s-slide s-slide-<?=$row_count?>">
<div><?=$row['field_sl_img']?></div>
</div>
<?php endforeach; ?>
</div>
</div>
<div class="s-prev"></div>
<div class="s-next"></div>
</div>
<? } ?>
Ответить к сожалению не могу на ваш вопрос, т.к. не разрабатываю сайты. По поводу тега, подскажите пожалуйста как должны быть правильно? По синтаксису проверил данный код, ошибок нет.
Убрал, но ошибка не исчезла:
PHP Parse error: syntax error, unexpected end of file in /var/www/drupal/sites/all/themes/mytheme/views-view-table--sli_page.tpl.php on line 49
Строку пустую в конце оставьте. И кеш сбросьте.
В шаблоне тэг пхп можно закрывать. А вот на безымянные тэги в пхп7 нежелательны, поэтому вместе "меньше вопрос" надо ставить "меньше вопрос пхп"
php 5.6
на скрине с конфой стоит 7.1. Но если поменяли, всё равно поставьте нормальный тэг пхп
Изначально было 7.1, после решил попробовать 5.6, но это не помогло, сейчас такая конфигурация:
спасибо,
<?php } так сработало, но теперь другая ошибка вылезла:
PHP Notice: Undefined variable: rows in /var/www/drupal/sites/all/themes/mytheme/views-view-table--sli_page.tpl.php on line 19
Моих познаний будет явно не достаточно для решения данного вопроса.
if(@$rows[0]['field_sl_img_1'] || @$rows[0]['field_sl_img'] || @$rows[0]['field_sl_ico'])