Skip to content

Мониторинг сайта на MODX

MODX Revolution — гибкая PHP CMS, популярная в России для корпоративных сайтов и кастомных проектов. Платформа стабильная, но как и любая CMS подвержена падениям из-за хостинга, плагинов или человеческого фактора.

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

Типичные причины падения MODX

Section titled “Типичные причины падения MODX”

MODX активно использует кэш (core/cache/). Если папка переполнена или есть мусор — могут быть случайные 500-е ошибки. Очистка кэша обычно решает.

2. Плагин/сниппет сломался

Section titled “2. Плагин/сниппет сломался”

Кто-то правил TV-параметр или сниппет → ошибка PHP в шаблоне → 500-я.

MODX делает много запросов к БД при каждом хите. Если БД упала или превышен лимит подключений — сайт лежит.

Чаще на shared-хостинге. MODX + 30 плагинов могут не уместиться в 128 МБ.

5. PHP-версия несовместима

Section titled “5. PHP-версия несовместима”

После обновления PHP на хостинге MODX (особенно старые версии 2.x) могут падать. Нужно обновлять и MODX до совместимой ветки.

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

Стандартный набор:

  • HTTP-доступность главной страницы
  • SSL-сертификат (7 порогов уведомлений)
  • Проверка из 3 регионов
  1. Зарегистрируйтесь в Monisite

  2. Нажмите + Добавить сайт на дашборде

  3. Введите URL сайта

  4. Через минуту увидите первую проверку

Совет: легковесный health-эндпоинт

Section titled “Совет: легковесный health-эндпоинт”

MODX-сайты часто имеют сложные главные страницы с динамическим контентом из БД. Полноценная главная — не лучший выбор для мониторинга каждую минуту.

Сделайте простой health-эндпоинт:

Способ 1. Простой PHP-файл в корне:

Создайте /health.php рядом с MODX (не внутри core/):

<?php
header('Content-Type: text/plain');
echo "OK";
?>

Используйте https://example.com/health.php в Monisite.

Способ 2. Лёгкий ресурс в MODX

Создайте в админке простой ресурс «status» с шаблоном без сложной логики (просто статичный HTML «OK»). Мониторьте https://example.com/status/.

Минус способа 1 — проверяет только что PHP жив, но не MODX. Минус способа 2 — нагружает MODX чуть больше, но проверяет ядро.

Что делать если MODX упал

Section titled “Что делать если MODX упал”

1. Очистить кэш:

Через FTP/SSH удалить содержимое:

core/cache/*

Это решает 30% проблем без всякого разбирательства.

2. Включить debug:

В core/config/config.inc.php:

$modx_error_handler_class = 'modErrorHandler';
$modx_error_handler_options = array(
'log_target' => 'FILE',
'log_level' => xPDO::LOG_LEVEL_INFO,
);

После — посмотреть лог в core/cache/logs/error.log.

3. Отключить плагины:

Через БД (если админка не открывается):

UPDATE modx_site_plugin_events SET disabled = 1;

Сайт поднимется без плагинов. Дальше включать по одному.

4. Проверить БД:

Terminal window
mysql -u user -p
> SHOW PROCESSLIST;

Если видите много долгих запросов от MODX — оптимизируйте сниппеты которые их генерируют.

5. Логи сервера:

Terminal window
sudo tail -100 /var/log/nginx/error.log
sudo tail -100 /var/log/php8.2-fpm.log

Защита от спама в формах

Section titled “Защита от спама в формах”

Базовая защита (для встроенных форм MODX):

  • honeypot — невидимое поле, заполняется только ботами
  • reCAPTCHA / SmartCaptcha — стандартная защита
  • rate-limit в nginx — не более N запросов в минуту с одного IP

Это снизит нагрузку и количество фейковых 503.

MODX часто хостится у небольших агентств или фрилансеров. Они не сидят 24/7 перед монитором ваших сайтов. Внешний мониторинг — единственный способ узнать о падении сразу.

  • Каждую минуту проверка из 3 регионов
  • Уведомления в Telegram, MAX, email
  • Мониторинг SSL
  • Бесплатно, без лимита сайтов

Подключить мониторинг →