Новый плагин ротации логов в Joomla

Начиная с версии 3.9.0 в Joomla появился новый плагин, который решает проблему ротации логов Joomla.

Что делает плагин ротации логов Joomla?

Во всех инсталляциях Joomla есть папка logs. В последних версиях она располагается в папке administrator, а в предыдущих версиях находилась непосредственно в корне сайта.

Сюда записываются результаты обновления Joomla, сообщения об ошибках, сообщения о попытках неудачной авторизации и, в случае включенной отладки, сюда же попадают все отладочные сообщения. Сюда же записывают результаты свой работы и другие программы, работающие под Joomla. Например, таким образом поступает плагин для форм обратной связи RadicalForm.

Так как на любом работающем сайте такие файлы будут постоянно расти (а иногда они могут расти очень быстро), то это приводит к неэффективному расходу дискового пространства сервера.

Найти нужную информацию в таком случае бывает очень сложно – в большом файле поиск зачастую бывает затруднен.

Поэтому разработчиками Joomla было принято решение о создании плагина, который будет регулярно очищать такие файлы, а старые сохранять под порядковым номером в том количестве, которое будет указано в настройках. Именно таким образом работает система логов на любом сервере.

Настройки плагина

Посмотреть настройки и изменить их параметры можно, если зайти в сам плагин.

Пока что настройка чрезвычайно проста – здесь находится интервал времени, через который журнал будет очищен, а также параметр, определяющий количество создаваемых журналов.

По умолчанию стоит 30 дней и количество журналов - 1. Это значит что через месяц все ваши текущие логи, находящиеся в папке logs будут очищены и переименованы в файлы, начинающиеся с цифры 1.

Например, журнал error.php будет переименован в журнал 1.error.php.

Еще через месяц, ваш текущий журнал будет переименован в журнал 1.error.php, а его предыдущее содержимое будет стерто.

Таким образом у вас постоянно имеется журнал за прошлый месяц и текущий журнал.

Вы можете изменить настройки и сохранять такое количество журналов за прошлые месяцы, которое вас устроит, или просто отключить плагин ротации логов Joomla и вернуться к тому поведению, которое было раньше.

Чего не хватает плагину сейчас?

Достаточно сравнить настройки нынешнего плагина и возможности ротации логов на любом сервере, чтобы понять самый главный недостаток текущей реализации.

Если на сайте со стабильным трафиком можно примерно рассчитать оптимальное время для очистки логов, то в случае с развивающимся проектом или же сайтом, который неожиданно попал под атаку ботов оптимальное время рассчитать просто невозможно.

На этот случай в настройках серверов предусмотрена очистка логов по достижении определенного размера файлов. Такой настройки в плагине сейчас нет, хотя возможно появится в будущем.

Неожиданные проблемы, которые приносит с собой плагин

Казалось бы разработчики Joomla сделали неплохое решение, которое повышает стабильность работы существующих сайтов  и не затрагивает никак текущее положение дел...

Однако не все оказалось так просто.

Плагин вмешивается в работу расширений Joomla, которые используют логи сайта для хранения какой-либо информации. Например, так поступает плагин RadicalForm для хранения истории отправленных форм. Необходимые изменения в него уже внесены, для того, чтобы с максимальной пользой использовать работу плагина ротации логов. Однако существуют и другие расширения, разработчики которых не столь расторопны. Да и вообще о таких вещах лучше сообщать как-то более явно. Мы обнаружили неожиданное поведение Joomla спустя несколько обновлений (что не удивительно, поскольку первая ротация происходит только через месяц).

Еще веселее началась жизнь некоторых сайтов на нерадивых хостингах...

Не все выполняют настройку Joomla самостоятельно, кто-то полагается на работу автоматических скриптов хостеров, которые работают кое-как.

Кое-какие скрипты на хостингах почему-то устанавливают адрес папки логов прямо в корень сайта, а не в папку logs, как положено.

К чему это приводит?

До обновления Joomla сайт работает нормально за исключением того, что в корне появляются файлы error.php и joomla_update.php. В принципе они ни на что не влияют и сайт продолжает работать как обычно. До тех пор, пока не случится обновление до последней версии Joomla.

После обновления проходят положенные 30 дней и затем все файлы с расширением php переименовываются в файлы, начинающиеся с цифры 1.

И файл index.php тоже...

Все это похоже на работу вируса и способно попортить жизнь любому владельцу сайта. Обычно помогает смена хостинга, в процессе которого папке logs устанавливается корректное значение.

Для того чтобы этого не случилось – пользуйтесь нормальными хостингами, например – FirstFVDS и на своих серверах устанавливайте бесплатную панель управления RISH – по ссылке можно прочитать как ее установить – https://github.com/Delo-Design/rish

Если будут вопросы – можно обсудить в чате.

https://t.me/projoomla