Не работает кеширование на сайте
Кеширование включенно и вадминке и у компонентов, но всегда Cache size: 0 b
Папка /bitrix/cashe/ пустая
В панели производительности Хранение кеша: cacheenginenone
Может быть cacheenginenone причиной проблемы?
Цитата |
---|
Екатерина Шелест пишет: Имеется ли проблема с записью в папку, права доступа посмотрите. Проверьте соответствие рекомендуемым настройкам php. |
С этим все в порядке
Цитата |
---|
Альберт Фахриев пишет: bitrix/admin/site_checker.php?lang=ru |
Про это мы в курсе, проблем там нет
Проблему решили на сервере.
Цитата |
---|
Денис Барабанщиков пишет: Проблему решили на сервере |
Столкнулся с проблемой, погугли, нашел эту тему. Посчитал своим долгом разобраться в проблеме.
Короче, cacheenginenone горит когда у вас некорректно настроен сам софт. Например, вы указали хранение в мемкеше, а мемкеш не настроен, не заводится. Тогда проект НЕ БУДЕТ кешироваться, а в панели будет гореть «cacheenginenone», что своего рода болванка по умолчанию.
Цитата |
---|
Антон Долганин написал: Столкнулся с проблемой, погугли, нашел эту тему. Посчитал своим долгом разобраться в проблеме. |
А вы случайно не сталкивались с ситуацией, когда 2 сайта работают на одной копии 1С-Битрикс, но при проверке производительности в админке первого сайта выводится cacheenginenone, а при проверке производительности в админке второго сайта выводится memcache ?
Причем, я вношу изменения в файлы .settings.php и .settings_extra.php касательно кеширования и значение в панели производительности меняется в админке второго сайта, но в админке первого сайта, не смотря ни на что, постоянно висит cacheenginenone.
P.S. Оказалось, дело было в версии php, которая должна была быть 5.3, а на первом сайте стояла 5.4.
Цитата |
---|
Slava Krikunov написал: Причем, я вношу изменения в файлы .settings.php и .settings_extra.php касательно кеширования и значение в панели производительности меняется в админке второго сайта, но в админке первого сайта, не смотря ни на что, постоянно висит cacheenginenone. |
Хостинг timeweb.
та же история с таймвебом, плановый переход выполняю всех сайтов с 5.3 на 5.4.
в процессе выяснилось что в 5.4 не работают основные настройки которые прописывались ранее в блоке .htaccess
касательно кодировки, pcre.recursion_limit итд
в итоге общения с техподдержкой выяснилось что надо теперь их прописывать в папке cgi-bin в корне сайта в файле php.ini
В ходе проб и ошибок родилась примерно такая структура данного файла
каждая строчка по сути убирает одну и ошибок которую выдаёт битрикс при проверке конфигурации, либо при запуске сканера безопасности.
Источник
Не работает кеширование компонентов на странице
По результатам отладки удалось обнаружить, что не работает кеширование компонентов (bitrix.news) на странице
и выполняются запросы вместо кеша
- Автокеширование компонентов включено .
- Управляемый кеш компонентов включен .
- Кеширование HTML выключено .
- В настройках стандартного компонента bitrix:news.list:
- Тип кеширования: авто+управляемое
- Время кеширования (сек.): 3600
Используется php 5.3.16 + wincache.
realpath_cache_size | 8000k | 8000k |
realpath_cache_ttl | 120 | 120 |
Как выяснить причину?
фильтр на странице есть,
проверял, когда выражение фильтра пустое, на индексной странице раздела,
кликая каждый раз по соответствующей ссылке на раздел из меню
общий ужас выглядит так:
У вас в юрле, случайно ckear_cache=Y не установлен?
Если ни чего не помогает — в ТП. Возможно проблемы с хостингом (дата, время, каталоги под кеш не верно формируются)
Цитата |
---|
Евгений Смолин пишет: У вас в юрле, случайно ckear_cache=Y не установлен? |
Детальный анализ выявил проблемы в работе wincache
тех.поддержка заявила о нем как «не гарантируется поддержка» и рекомендовала перейти на APC, Xcache
Apc не удалось подружить с многопоточным IIS, в рузальтате данные хоть и кешировались, но страница выдавалась со значительной задержкой
Xcache вместе с IIS 7 показал себя неплохо, на нем и остановился
возник некий глюк с Xcache
компонент bitrix:news.list содержит в себе другой нетиповой компонент , кеш работает нормально — без запросов. но стилевое оформление вложенного компонента сбивается. На уровне html в коде страницы с и без кеширования различий не заметил.
будем разбираться дальше.
Может кто уже знает ответ на вопрос проблемы со стилями при кешировании.. ?
Источник
Особенности кеширования компонентов
«Мы сделали свой компонент, но при включении автокеширования он работает неправильно. Исправьте механизм кеширования.»
Мне часто приходится слышать о такой проблеме. Аналогичная проблема возникает со своими шаблонами компонентов. Ситуация обычно усложняется тем, что техподдержка отказывается решать проблему ссылаясь на то, что стандартные компоненты системы работают нормально.
Предлагаю окончательно разобраться в этом вопросе и расставить все точки над «i».
Прежде пару слов о том, что привносит приставка «авто» к кешированию компонентов. Не стоит питать иллюзий относительно того, что Битрикс сам будет выбирать время кеширования и подходящий момент для очистки кеша. Это может делать только разработчик решения, основываясь на реальных потребностях конкретного проекта: необходимо указывать в настройках компонентов время кеширования, адекватное периодичности обновления информации.
Автокеширование появилось в 6-й версии продукта для замены стандартного кеширования компонентов. Единственное отличие в том, что автокеширование может выключаться глобально на весь сайт одной кнопкой в админке. Т.е. на этапе разработки оно выключено, перед сдачей проекта включается и, условно говоря, всё полетело!
Устройство и место хранения
Кеш компонентов хранится в файлах в папке /bitrix/cache .
На основе следующих параметров формируется идентификатор кеша компонента:
- ID текущего сайта,
- имя компонента,
- имя шаблона компонента,
- параметры компонента,
- внешние условия, которые определяются в компоненте (например, список групп, к которым привязан текущий пользователь).
ID кеша определяет путь к файлу с кешем (к слову, есть возможность использовать альтернативные способы хранения , но от этого не зависит работа с компонентами ). Таким образом, зная все эти параметры , можно очистить кеш любого компонента. Иначе кеш будет сброшен по истечении времени кеширования, кнопкой обновить кеш на панели инструментов публичной части или полной очисткой кеша из административной части.
Когда сбрасываете кеш страницы кнопкой очистить кеш , имейте ввиду, что компонент может использовать привязку к группам для хранения кеша, тогда незарегистрированные пользователи будут по-прежнему видеть не актуальную страницу.
Непосредственно после добавлении/изменении элемента инфоблока в административной части кеш публичных компонентов не сбрасывается . Образно это объясняется тем, что инфоблок «новости» «не знает», где выводятся новости в публичной части и сколько компонентов их отображает. Это не проблема если время кеширования выставлено правильно.
Структурная схема работы компонента
В $arParams содержится набор параметров компонента, component.php работает с входными параметрами запроса и базой данных, формирует результат в массив $arResult .
Шаблон компонента преобразует результат в текст HTML .
При первом хите сформированный HTML попадает в кеш (здесь и далее операции чтения показаны синими стрелками, записи — красными).
Пунктирная линия показывает порядок обработки php кода.
При последующих хитах работает другая схема:
Запросов в базу не делается (или делается мало), данные читаются из кеша.
Ключевой момент: порядок выполнения, в этом случае код шаблона компонента и result_modifier.php не исполняются .
Популярная ошибка, в шаблоне компонента вызываются отложенные функции: $APPLICATION->SetTitle(), $APPLICATION->AddChainItem() и т.д. В этом случае они работают только при выключенном кешировании.
Периодически приходится наблюдать картину: хостер отключает аккаунт за большую нагрузку на сервер, клиент обращается к нам в техподдержку, мы видим, что кеширование компонентов не используется. Клиент объясняет это так: «мне сказали ваши партнёры разработчики компонентов, что для этого компонента нельзя включать кеширование т.к. оно в битриксе криво работает».
При разработке шаблонов надо следовать простому правилу: задача шаблона — на основе входного массива $arResult сформировать текст HTML на выходе.
Источник
Проблема с меню, кэш ?
Подскажите, в чем может быть проблема.
С недавнего времени меню, bitrix:menu , начало «пропадать», вчера было, сегодня пусто! Причем пункты меню тоже изчезают и ессесьно становятся не кликабельны .
Я сразу в осадок давай выпадать . Разработчики посоветовали кэш удалить — удалил, не помогло.
По сути мне нужно зайти в админку, обновить кэш кнопкой, появляется меню . и так для каждого раздела меню — бред!
Тип кеширования: | Авто |
Время кеширования (сек.): | 36000000 |
В чем может быть проблема?
Цитата |
---|
Елена Захарченко пишет: Настройки -> Настройки продукта -> Автокеширование -> Очистка файлов кеша. Должно помочь. Настройка кеширования для компонента меню: 3600 |
Так я сразу почистил, сперва «только старые», потом «все». — не помогает, на данный момент ни рядовой пользователь, ни я не вижу меню, если не сброшу кеш кнопкой. Что до времени — сразу пару нулей убрал, поставил такое же значение.
Но проблему то это не решает, ибо заходишь в новость_1 — там меню не отображается, обновил кеш — отображается;
Заходишь в новость_2 — опять меню нет.
И вот так обновлять все новости? У меня их пока тестовых штук 10, а когда запустим сайт и новостей скажем будет 500 — это умом тронешься быстрей, чем обновишь все
Цитата |
---|
Владимир Дегтев пишет: имхо, во время настройки компонента лучше вообще кеш выключать. |
Вот знаешь, же пришел к такому же выводу.
Вопросы на самом деле остались .
Менюшка не появляется, если самолично не обновить кэш кнопкой .
Так же интересна кнопка «Учитывать права доступа», т.е. как контент-манагер обновил кеш — для него она обновилась, а для всех остальных — нет ?
«Время кеширования (сек.): 3600» — вот что это значит ? Время обновления данного компонента ? Т.е. каждые 3600 секунд данный компонент будет обновляться ?
Источник
Битрикс — проблемы с кэшированием
Не могу разобраться в чем дело.
Попросили мелкие правки по сайту битрикса внести, до этого с ним дел не имел.
belvederupak.ru/catalog/1/46/ вот каталог продукции, сделан он на инфоблоках. — news.detail
проблема следующая — при включенном общем автокэшировании карточки товаров в какой-то момент раз и становятся пустыми. т.е. по указанном адреса вместо содержимого — пустота. кэш сбрасываешь и опять есть, до какого-то момента(по меню левому ползаешь когда). отключение кэширование компонента эффекта не дает.
if ( intval ( $_REQUEST [ «ID» ] ) > 0 ) <
$arSelect = Array ( «ID» , «NAME» ) ; // выборка нужных значений
$arFilter = Array ( «IBLOCK_ID» => 5 , «ACTIVE_DATE» => «Y» , «ACTIVE» => «Y» , «ID» => $_REQUEST [ «ID» ] ) ;
$res = CIBlockElement :: GetList ( Array ( ) , $arFilter , false , Array ( «nPageSize» => 50 ) , $arSelect ) ;
$ob = $res -> GetNextElement ( ) ;
$arFields = $ob -> GetFields ( ) ;
//print_r($arFields);
$title = $arFields [ ‘NAME’ ] ;
$APPLICATION -> SetPageProperty ( «title» , $title . ‘ в Новосибирске по низким ценам. Купить товар ‘ . $title . ‘ оптом от производителя – Бельведер Упак’ ) ;
$APPLICATION -> SetPageProperty ( «keywords» , $title . ‘ оптом и в розницу в Новосибирске. Продажа товаров ‘ . $title . ‘ от производителя – Бельведер Упак.’ ) ;
$APPLICATION -> SetPageProperty ( «description» , $title . ‘ в Новосибирске, ‘ . $title . ‘ купить, ‘ . $title . ‘ цена, ‘ . $title . ‘ оптом, ‘ . $title . ‘ производство ‘ ) ;
$APPLICATION -> IncludeComponent ( «bitrix:news.detail» , «catalog» , array (
«IBLOCK_TYPE» => «belveder» ,
«IBLOCK_ID» => «5» ,
«ELEMENT_ID» => $_REQUEST [ «ID» ] ,
«ELEMENT_CODE» => «» ,
«CHECK_DATES» => «Y» ,
«FIELD_CODE» => array (
0 => «NAME» ,
1 => «DETAIL_TEXT» ,
2 => «» ,
) ,
«PROPERTY_CODE» => array (
0 => «» ,
1 => «PHOTO» ,
2 => «» ,
) ,
«IBLOCK_URL» => «» ,
«AJAX_MODE» => «N» ,
«AJAX_OPTION_JUMP» => «N» ,
«AJAX_OPTION_STYLE» => «Y» ,
«AJAX_OPTION_HISTORY» => «N» ,
«CACHE_TYPE» => «A» ,
«CACHE_TIME» => «36000000» ,
«CACHE_GROUPS» => «Y» ,
«META_KEYWORDS» => «-» ,
«META_DESCRIPTION» => «-» ,
«BROWSER_TITLE» => «-» ,
«SET_TITLE» => «Y» ,
«SET_STATUS_404» => «Y» ,
«INCLUDE_IBLOCK_INTO_CHAIN» => «Y» ,
«ADD_SECTIONS_CHAIN» => «Y» ,
«ACTIVE_DATE_FORMAT» => «d.m.Y» ,
«USE_PERMISSIONS» => «N» ,
«DISPLAY_TOP_PAGER» => «N» ,
«DISPLAY_BOTTOM_PAGER» => «N» ,
«PAGER_TITLE» => «Страница» ,
«PAGER_TEMPLATE» => «» ,
«PAGER_SHOW_ALL» => «N» ,
«AJAX_OPTION_ADDITIONAL» => «»
) ,
false
) ;
В этом же файле — catalog/index.php если $_REQUEST[‘ID’] Не задан, то через if прописано условие вывода инфо о продукции
if ( CModule :: IncludeModule ( «iblock» ) ) <
$arOrder = array ( «SORT» => «ASC» ) ;
$arFilter = array ( «IBLOCK_ID» => 5 , «ACTIVE» => «Y» , «ID» => $_REQUEST [ «SECTION_ID» ] ) ;
$tmpResult = CIBlockSection :: GetList ( $arOrder , $arFilter , false , $arSelect = Array ( ‘UF_TITLE’ , ‘UF_KEYWORD’ , ‘UF_DESCRIPTION’ , ‘UF_H1’ ) ) ;
if ( $ob = $tmpResult -> GetNext ( ) ) <
$APPLICATION -> SetPageProperty ( «title» , $ob [ UF_TITLE ] ) ;
$APPLICATION -> SetPageProperty ( «keywords» , $ob [ UF_KEYWORD ] ) ;
$APPLICATION -> SetPageProperty ( «description» , $ob [ UF_DESCRIPTION ] ) ;
‘ ;
echo $ob [ «UF_H1» ] ;
echo ‘
Источник