Автор Тема: Перенос. Редиректит на старый ip  (Прочитано 1290 раз)

04 Июль 2015, 19:37:09
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
Доброго времени!

Prestashop 1.6

Перенёс Престу с виртуалки на железо. База, файлы, юзеры, пароли, пермиссии, всё ОК. Но после ввода адреса, смотрелка лезет на ip виртуалки.
В settings.inc.php соответствующей опции нет. В логах пусто.

В инспекторе смотрелки:

Ошибка синтаксического анализа XML: неопределённое состояние синтаксического анализатора
Глюк смотрелки исключаю любые другие страницы ОК, и с виртуалки всё корректно.

Прошу помочь разобраться.
Спасибо. 
04 Июль 2015, 20:34:50
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
05 Июль 2015, 08:12:25
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
DarinSr   Спасибо!  :)  Базу поправил. ps_shop_url  PS_SHOP_DOMAIN и PS_SHOP_DOMAIN_SSL изменил   Сайт грузится

Следующий трабл: Вход в админку - белый экран.
В логе
"PHP message: PHP Fatal error:  Call to undefined function simplexml_load_string()
В каком файле прописана simplexml_load_string() ?  :-\

Файлы в наличии, пермиссии правильные. Используются APC & Memcache
Кэш Prestashop на виртуалке был отключен. Копировал без кэша.



 
05 Июль 2015, 12:29:46
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нужно установить расширение для PHP SimpleXML.
05 Июль 2015, 13:06:12
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Нужно установить расширение для PHP SimpleXML.
И проверить установку расширения hash.
Оба должны быть установлены.
05 Июль 2015, 14:27:47
Ответ #5
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
Да, действительно. Указанные Вами расширения небыли установлены.

Установил, перезапустил php-fpm, проверил phpinfo, ОК!.  :)

Захожу в админку и на остальные страницы. Спасибо!!!

В процессе трабла, включил отображение ошибок смотрелкой. На главной вижу:

Notice: Undefined index: cms in ./prestashop/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 34
Notice: Trying to get property of non-object in prestashop/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 34

Видимо, упущено ещё что-то.  Посоветуйте решение.
05 Июль 2015, 14:41:14
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Попробуй в ручную удалить все файлы из кеша:
/cache/smarty/compile/
/cache/smarty/cache/
05 Июль 2015, 15:48:02
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
/cache/smarty/cache/ - пустая, только index.php
/cache/smarty/compile/ - очистил, (кроме index.php)

Безрезультатно. Те-же ошибки.

05 Июль 2015, 16:03:16
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Отключить нужно страницы cms и модуль блок смс. Если ошибки исчезнут, значит проблема в шаблоне cms.tpl или шаблоне модуля.
05 Июль 2015, 16:22:34
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Что-то со страницами смс неправльно. Удали их и создай заново.
05 Июль 2015, 19:28:20
Ответ #10
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
Отключил все страницы СМС, и модуль блок СМС.

Ошибки без изменений. Продолжаю поиск проблемы. Насколько я понял,
smarty_internal_templatebase.php(157) : eval()'d code on line 34
там  кусок кода, который отвечает за создание кэша, либо компилляцию,  условные операторы, типа если нет кэша, компилить.

Ошибка при обработке этого куска :

  /** @var Smarty_Internal_Template $_smarty_tpl
                 * used in evaluated code
                 */

                 ...

else {
                    if (!$_template->compiled->exists || ($_template->smarty->force_compile && !$_template->compiled->isCompiled)) {
                        $_template->compileTemplateSource();
                        $code = file_get_contents($_template->compiled->filepath);
                        eval("?>" . $code);
                        unset($code);
                        $_template->compiled->loaded = true;
                        $_template->compiled->isCompiled = true;
                    }

После ручного удаления кэша структура папок /cache/smarty/compile создана вновь. Т.е пермиссии достаточные. Что ещё может мешать обработке?

05 Июль 2015, 19:34:20
Ответ #11
  • Фрилансер
  • *
  • Сообщений: 113
  • Репутация: +3/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Что ещё может мешать обработке?
Нет каких-то расширений php GD, cURL, SimpleXML, SOAP....
Нет нужных пакетов MemCached, mcrypt PHP extension...
Нет места на диске или запрещен доступ к папке кеширования.
Проверить нужно хостинг на требования prestashop.
06 Июль 2015, 11:44:51
Ответ #12
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
Тема продолжается, всё дальше отклоняясь от сабжа:

Причина обнаружена. Ошибки при обработке блока баннеров.

Блок был изменён, для отключения баннера на некоторых страницах. Убираю дописанное, ошибки исчезают. 

modules/blockbanner/blockbanner.tpl

{if $cms->id != '4' and $cms->id != '1' }   - это
  <a href="{if $banner_link}{$banner_link|escape:'htmlall':'UTF-8'}{else}{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}{/if}" title="{$banner_desc|escape:'htmlall':'UTF-8'}">
    {if isset($banner_img)}
        <img class="img-responsive" src="{$banner_img|escape:'htmlall':'UTF-8'}" alt="{$banner_desc|escape:'htmlall':'UTF-8'}" title="{$banner_desc|escape:'htmlall':'UTF-8'}" width="1170" height="65" />
    {else}
        {$banner_desc|escape:'htmlall':'UTF-8'}
    {/if}
  </a>
{/if} - и, соответственно, это

 Но почему ошибки? Что неправильно?

Каким ещё образом можно отключать баннер на страницах 4 и 1?

06 Июль 2015, 11:59:29
Ответ #13
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
{if $banner_link}В настройках модуля баннера какие ссылки указаны?
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
06 Июль 2015, 12:02:39
Ответ #14
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
{if isset($cms->id) && ($cms->id != 4 ||  $cms->id != 1) }
...

Самый главный вопрос, в самом модуле переменная $cms определена?
В стандарном ее нет и использовать в шаблоне нельзя.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.