Чистка кэша "Битрикс" - важная и регулярно необходимая операция для поддержания эффективной работы вашего сайта. В этой статье мы рассмотрим ключевые причины, по которым важно регулярно удалять кэш, и предложим надёжный метод настройки автоматической очистки кэша для сайтов на платформе "1С-Битрикс", которые были успешно применены нашими специалистами в Web-Comp.
Зачем регулярно очищать кэш "Битрикс"
Предотвращение переполнения дискового пространства
Накопление кэша может со временем привести к его избыточному заполнению, что негативно сказывается на скорости работы сайта и может вызвать остановку сервера.
Обновление контента для пользователей
Кэшированные файлы могут мешать отображению актуальной версии страниц сайта, скрывая внесённые изменения.
Автоматическая очистка кэша на 1С-Битрикс
Шаги настройки
- В административной панели перейдите в "Настройки" → "Настройки продукта" → "Автокеширование".
- Откройте вкладку "Очистка файлов кеша" и выберите один из следующих вариантов:
- Только устаревшие.
- Все.
- Меню.
- Весь управляемый.
- Все страницы HTML кеша.
Решение проблем с папкой /bitrix/cache/
Эта папка содержит файлы неуправляемого кэша, которая может расти в размерах. Для предотвращения проблем с правами на файлы и папки, установите следующие значения в скрипте /bitrix/php_interface/dbconn.php:
umask(000);
@umask(~BX_DIR_PERMISSIONS);
Добавление нового агента для удаления кэша
- Перейдите в "Настройки" → "Настройки продукта" → "Агенты".
- В открывшейся вкладке настройте параметры агента следующим образом:
- Функция агента:
clean_expire_cache()
. - Сортировка: 100.
- Интервал: 10.
- Модуль:
main
.
- Функция агента:
Настройка файла init.php для автоматической очистки кэша
После настройки параметров в административной панели, вам необходимо внести изменения в файл /bitrix/php_interface/init.php
. Эти изменения обеспечат корректную работу скрипта по очистке кэша, с учетом его выполнения на Cron или напрямую через хиты сайта.
<?
function clean_expire_cache($path = "") {
if (!class_exists("CFileCacheCleaner")) {
require_once ($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/cache_files_cleaner.php");
}
$curentTime = mktime();
if (defined("BX_CRONTAB") && BX_CRONTAB === true)
$endTime = time() + 5; // Если на кроне, то работает 5 секунд
else
$endTime = time() + 1; // Если на хитах, то не более 1 секунды
function clean_expire_cache($path = "") {
if (!class_exists("CFileCacheCleaner")) {
require_once ($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/cache_files_cleaner.php");
}
$curentTime = mktime();
if (defined("BX_CRONTAB") && BX_CRONTAB === true) $endTime = time() + 5; // Если на кроне, то работает 5 секунд
else $endTime = time() + 1; // Если на хитах, то не более 1 секунды
// Работаем со всем кэшем
$obCacheCleaner = new CFileCacheCleaner("all");
if (!$obCacheCleaner->InitPath($path)) {
// В случае ошибки
return "clean_expire_cache();";
}
$obCacheCleaner->Start();
while ($file = $obCacheCleaner->GetNextFile()) {
if (is_string($file)) {
$date_expire = $obCacheCleaner->GetFileExpiration($file);
if ($date_expire && $date_expire < $curentTime) {
unlink($file);
}
if (time() >= $endTime) break;
}
}
if (is_string($file)) {
return "clean_expire_cache(\"" . $file . "\");";
} else {
return "clean_expire_cache();";
}
}
Регулярная очистка кэша на вашем сайте "Битрикс" поможет обеспечить его стабильную и быструю работу. Применяя предложенные выше методы, вы можете автоматизировать этот процесс, что позволит сэкономить время и улучшить общее впечатление пользователей от вашего сайта. Следуйте этим рекомендациям, чтобы ваш сайт всегда оставался актуальным и эффективным.