Opencart 3: Очистка старых сессий

Opencart 3: Очистка старых сессий

В новой версии Opencart 3 нет стандартного механизма очистки от старых сессий, которые хранятся в базе данных. Поэтому, чтобы они не забивали базу и не тормозили систему, нужно их очищать "вручную". 

Что для этого нужно:

Шаг 1

Создадим файл clearsession.php в корне сайта с содержимым:

<?php

require_once('config.php');

$linkmysql = mysqli_connect(DB_HOSTNAME,DB_USERNAME, DB_PASSWORD, DB_DATABASE);

mysqli_query($linkmysql,"delete from `".DB_PREFIX."session` where expire < DATE_SUB(NOW(), INTERVAL 7 DAY);") or die(mysqli_error($linkmysql));

?>

Шаг 2

Добавим задачу в крон:

wget -O /dev/null -q -t 1 "http://site.ru/clearsession.php" >/dev/null 2>&1

 Где site.ru надо заменить на ваш домен и время выполнения выставить 1 раз в сутки. 

Простые 2 шага помогут вам держать в таблице сессий только записи не старше 7 дней.

ОБНОВЛЕНИЕ 22.10.2020

В связи с тем, что проблема проявляется часто, а не все владельцы сайтов могут справиться с планировщиком задач (Cron), было принято решение написать модификатор.

Суть его очень проста: Очистка сессий в БД происходит каждое воскресенье с 3 до 4 часов утра. Любой, кто зашёл в этот промежуток времени на сайт запустит стандартный механизм очистки сессий. Это отличный баланс между нагрузкой на сервер и очисткой мусора.

Данный модификатор полностью бесплатный и работает на любых версиях OpenCart 2.х-3.x. Установка происходит через админку сайта стандартными методами.

Скачать можно по ссылке: https://getmanyspeed.ru/files/ClearSessionDB.ocmod.zip

 
Оформление заказа
Не отправляйте пароли от Вашего сайта. Дополнительные данные будут запрошены отдельно по необходимости.
Мы получили Вашу заявку!
Скоро с Вами свяжутся и мы обсудим все детали.


Обязательно проверяйте папку "Спам". Мы постараемся отвечать быстро!