UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: albion от 27 Апреля 2016, 14:58:33

Название: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 27 Апреля 2016, 14:58:33
С сайтом происходит какая то странная ситуация:

1. Когда залогинешься - сайт начинает тормозить по жуткому, но это ничего страшного, т.к. только я логинюсь, а в админке сайт летает.

2. Второе вот больше напрягает. Добавляешь товар в корзину -> переходишь в корзину -> оформляешь заказ по странично забив необходимые данные -> и на последнем этапе, когда уже должна открыться страница с информацией о том, что заказ сформирован, происходит какая то неведомая фигня страница подумав секунд 20-30 отражается пустой в прямом смысле, т.е. пустой html. Но самое интересное, что заказ оформляется и даже письмо приходит о заказе.

И главное никаких ошибок вообще не выдает, т.е. включаю отображение ошибок, а их просто нет. Попытки менять всякие параметры, типа selection-calc-found-rows-disable, то же ни к чему не привели. Даже, после того, как подцепил пустой шаблон (пользуюсь tpl) с одним макросом %content% - так же ничего не дало.

Пробежался по всем рекомендуемым UMI-CMS настройкам хостинга - все настройки, вроде, подходят. Всякие кэширующие механизмы не использую, а точнее использую через custpom.php кэш, который описан в wiki umi и кешируется только части страниц и корзину никак не затрагивает.

Может кто знает, с чем вообще это может быть связано?
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: aghigay от 27 Апреля 2016, 15:05:44
Если корзина тупит 20-30 секунд - значит вы можете попасть на таймаут. У апача есть максимальное время исполнения скрипта. Если оно превышено - апач просто рубит процесс. Ошибки могут быть в логах сервера. Проверяйте.

С этой версией umi.cms у меня были подобные проблемы - лечится обновлением до последней версии + чисткой мусора в системе. Второе нужно чтобы базу почистить. Первое - чтобы ускорить системные скрипты.

Если обновляться не получается - начните с малого. Вырубите и почистите статистику. Вырубите и почистите события (не помню, есть они у вас или нет), проверьте комментарии (их может быть много, особенно неопубликованных - стоит удалить), проведите чистку БД.

Ну и конечно логи. Без логов сложно сказать в чем конкретно затык. Нужно изучать.
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 27 Апреля 2016, 15:54:00
Timeout в Apache стоял 300, так что думаю не в нем проблема. В логах ошибок так же нет.

По поводу чистки, вероятно, согласен с вами, но как ее произвести, когда в том же интернет магазине непомйми откуда более 80 000 заказов, а на странице выдает только по 20 заказов. Т.е. я быстрого способа почистить не знаю. http://dl1.joxi.net/drive/2016/04/27/0013/1723/915131/31/e209607dc3.png

А статистику, как правило сразу отключаю, т.к. тормозит систему :)
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 27 Апреля 2016, 17:14:22
Поковырялся дальше :) До этого была отключена система оплаты, после того, как включил там был только один пункт "Квитанцией сбербанка" - выбрал при покупке, опять 10-20 секунд подождал и система сформировала квитанцию, т.е. по сути оформление заказа закончилось.

Далее добавил "оплату курьеру" и получилось, то что сейчас постоянно - пустая страница :(

Что то начинаю подозревать, что где то вшита, то ли по ID, то ли еще как то, функция, которая формирует заказ с доставкой курьеру, но т.к. такого пункта не было, то не на что сослаться и по этому выходит пустая страница. Теперь главное разобраться где этот ID прописан и на что его заменить, что бы все работало :(
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: aghigay от 27 Апреля 2016, 18:09:23
Все-таки, судя по всему, у вас проблема как раз в общем количестве заказов. И из-за старой версии ЮМИ в вашем случае формирование следующего заказа занимает огромное количество времени. Чтобы такого не происходило - чистите ЮМИ от старых пустых заказов.

Дело это не простое. Есть скрипты по очистке, можно попробовать вручную чистить. Но, в любом случае, рекомендую обновиться и поставить выполнение крона на регулярную основу (скажем, ночью) Это потенциально решит ваши проблемы, но примерно в течение месяца - не раньше. Если нужны более быстрые сроки - то только ручная чистка.
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 28 Апреля 2016, 09:56:34
Дело это не простое. Есть скрипты по очистке
Где бы достать эти скрипты?

Подойдет ли данный скрипт, для 2,8,5 (ссылка на WIKI не вставляется здесь) и там написано актуально для 2,9:

public function delOrders($m=0,$y=0){
                $orders = new selector('objects');
                $objectsCollection = umiObjectsCollection::getInstance();
                $orders->types('object-type')->name('emarket','order');
                foreach($orders as $order){
                    $date=$order->order_date;
                    echo $order->id."<br />";
                    $parsDate=explode('-',$date);
                    if(($parsDate[0]<$y)){
                        $objectsCollection->delObject($order->id);
                    }
                    if(($parsDate[1]<$m)){
                        $objectsCollection->delObject($order->id);
                    }
                    if((!$parsDate[0])&&(!$parsDate[1])){
                        $objectsCollection->delObject($order->id);
                    }
                    }
                return "done";
            }
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: aghigay от 28 Апреля 2016, 10:16:18
В этом скрипте есть некоторая проблема. Даже 2:
1. Он не применим для версии 2.8.5, так как у вас (скорее всего) просто нет ничего в поле order_date. Насколько я помню, это было исправлено только в версии 2.9. Но можете проверить. В крайнем случае, можете каким-то образом задать это
2. Этот скрипт не чистит заказчиков и товары. А это может быть гораздо большее число объектов. И они останутся повисшими в системе. Для их очистки я видел где-то дополнительные скрипты.

Реально проще обновиться и убрать проблемы по быстродействию навсегда, а не до момента, пока следующий раз придется чистить базу
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 28 Апреля 2016, 10:41:58
Реально проще обновиться и убрать проблемы по быстродействию навсегда, а не до момента, пока следующий раз придется чистить базу
Да, если бы было проще обновить, то давно бы обновил. :( Столько проблем может появиться, что текущие окажутся цветочками :), первейшие из которых, не работающие кастомные скрипты, которые писались под заказ. Хотя, есть новый функционал, который я бы внедрил бы на сайт :)
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 28 Апреля 2016, 10:48:28
2. Этот скрипт не чистит заказчиков и товары. А это может быть гораздо большее число объектов. И они останутся повисшими в системе. Для их очистки я видел где-то дополнительные скрипты.
Не, их гораздо меньше. В справочнике "Адрес доставки" около 200, а вот "Незарегистрированных покупателей" примерно столько же, сколько и заказов :(
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: aghigay от 28 Апреля 2016, 11:04:16
Про адреса доставки я ничего не говорил :-) Я говорил про товары в зависших корзинах. А товаров там не по одному. Итого, 80 тысяч корзин, пусть по 2 товара - сколько объектов?
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 28 Апреля 2016, 11:14:32
Про адреса доставки я ничего не говорил :-) Я говорил про товары в зависших корзинах. А товаров там не по одному. Итого, 80 тысяч корзин, пусть по 2 товара - сколько объектов?
В каждом заказе по 1 товару. Похоже нашел описание своей проблемы http://umi-cms.spb.su/forum/index.php?what=showtopic&theme=173 , но там какой то странный скрипт http://umi-cms.spb.su/forum/index.php?what=showtopic&theme=150 , а точнее не понятно для чего там надо указывать IP и другие данные :) и еще один способ, но не знаю подойдет ли для 2,8,5 - http://uminsk.ru/help/umenshit-razmer-bazy/
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 29 Апреля 2016, 10:52:12
Почистил все заказы. Сайт, реально, начал на много быстрее работать. Ранее, когда залогиненый был, то страница открывалась по 8 сек, сейчас же 0,8 сек.
Но, пустая страница заказа так и осталась. Не пойму в чем может быть проблема :(
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: aghigay от 29 Апреля 2016, 11:49:34
Проверяйте, что у вас есть шаблоны, которые отвечают за формирование страницы результата и что эти шаблоны без ошибок. Самый простой способ продиагностировать - добавить .xml и ?showStreamsCalls на пустую страницу и посмотреть что выведет один запрос и что другой.
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 29 Апреля 2016, 12:21:07
Проверяйте, что у вас есть шаблоны, которые отвечают за формирование страницы результата и что эти шаблоны без ошибок. Самый простой способ продиагностировать - добавить .xml и ?showStreamsCalls на пустую страницу и посмотреть что выведет один запрос и что другой.
Тот же самый шаблон отвечает и за все остальные страницы корзины, да и в нем, кроме %content% ничего нет и да вставлял шаблоны с работающего сайт, правда версия выше и работало все так же, т.е. за место страницы с фразой - "Ваш заказ принят" выдается пустая страница, при этом заказ уходит (вся почта рассылается и поступает в базу).
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: aghigay от 29 Апреля 2016, 13:16:18
Хочу обратить внимание на то, что сказанное не совсем корректно отражает действительность. Судя по всему, правильнее было бы сказать не "тот же самый шаблон", а "тот же самый файл". В файлах содержаться шаблоны, которые отвечают за различные события внутри системы. И, возможно, шаблон на конкретное событие работает не совсем корректно.
Если вы взгляните на вопрос с этой точки зрения, то, возможно, решение найдется. Нам тут без кода особо ничего и не посоветовать.
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 29 Апреля 2016, 13:30:08
Хочу обратить внимание на то, что сказанное не совсем корректно отражает действительность. Судя по всему, правильнее было бы сказать не "тот же самый шаблон", а "тот же самый файл". В файлах содержаться шаблоны, которые отвечают за различные события внутри системы. И, возможно, шаблон на конкретное событие работает не совсем корректно.
Если вы взгляните на вопрос с этой точки зрения, то, возможно, решение найдется. Нам тут без кода особо ничего и не посоветовать.
Да, возможно не корректно выразился. Но, как уже выше написал - основной шаблон сделал пустым с одним макросом %content%, а все файлы из папки с шаблонами /emarkets/ заменил на файлы с работающего сайта.

Кстати, по поводу ?showStreamsCalls - когда вставляешь это, то сайт подвисает и уходит в 504 ошибку и логах ошибок появляется:
PHP Warning:  DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Opening and ending tag mismatch: img line 304 and a in /var/www/anton/data/www/htdocs/tpls/content/pt-main.tpl, line: 304 in /var/www/anton/data/www/htdocs/classes/system/subsystems/templaters/xslt/xslTemplater.php on line 2
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: aghigay от 29 Апреля 2016, 17:00:39
ну, собственно с этого можно начать: смотрите что за проблемы в 304 строке и решайте их. Хоть какая-то подсказка.
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 04 Мая 2016, 10:33:25
aghigay, спасибо. Проблему решил. Оказалось, что проблему создавал шаблон, по которому отправлялись письма интернет магазином. Но, когда все письма приходят - было сложно понять, что именно из за этого была пустая страница :(

Даже интересно, где может быть ошибка :( , я лично так и не понял.

Файл шаблонов, который давал пустую страницу.
<?php
$FORMS = Array();

$FORMS['status_notification'] = <<<END
Ваш заказ #%order_number% %status%
END;

$FORMS['status_notification_receipt'] = <<<END
Ваш заказ #%order_number% %status%
END;

$FORMS['neworder_notification'] = <<<END
Поступил новый заказ #%order_number% (<a href="http://%domain%/admin/emarket/order_edit/%order_id%/">Просмотр</a>)
<br/><br/>
%emarket order(%order_id%, 'order')%
END;
?>

Файл шаблонов, с которым все работает:
<?php
$FORMS = Array();

$FORMS['status_notification'] = <<<END
Ваш заказ #%order_number% %status%
<br/><br/>

END;

$FORMS['status_notification_receipt'] = <<<END
Ваш заказ #%order_number% %status%
<br/><br/>

END;

$FORMS['neworder_notification'] = <<<END
Поступил новый заказ #%order_number% (<a href="http://%domain%/admin/emarket/order_edit/%order_id%/">Просмотр</a>)
<br/><br/>

Способ оплаты: %payment_type%<br/>
Статус оплаты: %payment_status%<br/>
Сумма оплаты:  %price%<br/>


END;
?>
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: aghigay от 04 Мая 2016, 11:00:09
Может нет шаблона order для emarket?
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: albion от 04 Мая 2016, 11:07:31
Может нет шаблона order для emarket?

Да нет, все есть. У меня единственное подозрение: у хостера был сбой харда (реально был), и как то неправильно восстановился бекап (может какой байт :) в процессе потерялся или наоборот добавился :) , которого не увидишь) и UMI был недоволен таким исходом и выдавал пустую страницу. Как только физически файл заменил - так сразу ошибка исчезла.
Название: Re: UMI-CMS 2.8.5 - пустая страница
Отправлено: aghigay от 04 Мая 2016, 11:47:09
Да, такое возможно