В новых версиях MODX пароль хранится и проверяется не так, как в старых инструкциях. Простая замена password = MD5('...') часто не даёт войти в админку, потому что системе важны ещё профиль пользователя, права и корректная связка с группой администраторов.
Пароль MODX: почему MD5 не работает и как восстановить доступ в админку
Содержание:
Есть один момент, который знаком почти каждому, кто работает с MODX.
Он всегда происходит неожиданно.
Вы заходите в /manager, вводите логин и пароль — и…
MODX молча говорит «нет».
Пароль точно правильный.
Вы его только что поменяли в базе.
Через MD5, как написано в десятках статей и на форумах.
Но админка не пускает.
Если вы сейчас в этой точке — остановитесь.
Вы ничего не сломали. И вы не один.
Классический сценарий (и почему он больше не работает)
Обычно всё начинается одинаково:
сайт перенесли на новый сервер
восстановили из бэкапа
пароль администратора не подходит
Вы идёте в поиск и находите «проверенный» совет:
UPDATE modx_users
SET password = MD5('newpassword')
WHERE username = 'user';
Обновляете пароль.
Пробуете войти.
❌ Не пускает.
И вот здесь начинается самое интересное.
Как было раньше (MODX Evo и старые Revo)
В старых версиях MODX всё действительно было просто:
пароль = MD5
никакой соли
минимум проверок
Меняли хэш в базе — и входили в админку.
Поэтому интернет до сих пор завален статьями 2010–2014 годов, где это описано как рабочий способ.
Проблема в том, что MODX давно изменился.
Что изменилось в новых версиях MODX
Начиная с более свежих версий MODX Revolution, система авторизации стала сложнее и безопаснее.
Теперь используется:
соль (salt)
более сложная схема хэширования
дополнительные проверки пользователя
связь с контекстом
managerгруппы и роли доступа
И самое главное:
Просто записать MD5 в поле
password— недостаточно.
Пароль может быть корректным с точки зрения базы,
но некорректным с точки зрения MODX.
Отсюда и ощущение, что «пароль есть, а входа нет».
Почему MD5 больше не спасает
MD5 сам по себе:
устарел
небезопасен
и в MODX используется не напрямую
MODX ожидает:
конкретный формат хэша
корректную связку пользователя
активный статус
наличие профиля
права администратора
Если хотя бы один элемент не совпадает — вход будет заблокирован.
Именно поэтому:
старые SQL-запросы «не работают»
удаление соли ломает авторизацию ещё сильнее
люди по кругу меняют пароль, но результат один
Самая частая ошибка (и самая опасная)
❌ Пытаться чинить существующего пользователя вслепую
Что обычно делают:
правят пароль
не проверяют группы
не смотрят, активен ли пользователь
не проверяют контекст
manager
В итоге:
пользователь есть
пароль есть
а прав на вход нет
Правильный подход: не чинить, а создать доступ
Когда мы сталкиваемся с такими ситуациями на проданных или восстановленных сайтах, мы не пытаемся угадать, как именно был сформирован старый пароль.
Мы делаем проще и надёжнее.
Как восстановить доступ в админку MODX через phpMyAdmin (самый понятный способ)
Сразу договоримся: мы не будем “ковырять соль” и угадывать, как был сделан старый пароль. Мы сделаем проще и надёжнее:
создадим нового администратора в базе данных, чтобы точно войти в /manager.
Что нужно заранее
доступ в хостинг/панель или к базе данных
phpMyAdmin (обычно есть в панели)
имя базы данных (DB name) — его можно посмотреть в файле
core/config/config.inc.php
Шаг 1. Открываем phpMyAdmin и выбираем базу
Зайди в phpMyAdmin.
Слева выбери нужную базу данных (ту, где лежит MODX).
Если не уверен, какая база — открой файл:
core/config/config.inc.php
и найди строки:
$dbase = '...';$table_prefix = '...';
Шаг 2. Узнаём префикс таблиц (важно)
У MODX таблицы часто начинаются не с modx_, а, например, с abc_.
Префикс — это значение $table_prefix.
Примеры:
modx_site_x7a_
Важно: дальше в запросах я буду писать modx_.
Если у тебя префикс другой — замени везде modx_ на свой.
Шаг 3. Создаём пользователя (в таблице users)
В phpMyAdmin открой вкладку SQL.
Вставь запрос ниже (замени логин и пароль на свои).
INSERT INTO modx_users (username, password, active, class_key)
VALUES ('my_admin', MD5('MyStrongPass123!'), 1, 'modUser')
ON DUPLICATE KEY UPDATE
password = MD5('MyStrongPass123!'),
active = 1;
Нажми Выполнить.
✅ Что это делает:
создаёт пользователя
my_adminставит пароль
делает его активным
Шаг 4. Создаём “атрибуты” пользователя (это важно!)
У MODX есть вторая таблица, где хранится профиль пользователя: имя, email и т.д.
Иногда без неё MODX ведёт себя странно, поэтому мы создаём её обязательно.
В phpMyAdmin снова вкладка SQL и выполняем:
INSERT INTO modx_user_attributes (internalKey, fullname, email)
SELECT u.id, 'Temp Admin', ''
FROM modx_users u
LEFT JOIN modx_user_attributes a ON a.internalKey = u.id
WHERE u.username = 'my_admin'
AND a.internalKey IS NULL;
✅ Что это делает:
находит ID пользователя
my_adminсоздаёт запись в
modx_user_attributes, если её ещё нет
Шаг 5. Добавляем пользователя в группу администраторов
Даже если пользователь создан, без прав администратора он может не попасть в manager или будет без доступа.
Сначала убедимся, что группа существует. Выполни:
SELECT id, name FROM modx_user_groups;
Обычно группа называется:
Administrator(чаще всего)Administrators(реже)
Теперь добавляем пользователя в админы:
INSERT INTO modx_member_groups (member, user_group, role)
SELECT u.id, g.id, 2
FROM modx_users u
JOIN modx_user_groups g ON g.name IN ('Administrator','Administrators')
LEFT JOIN modx_member_groups mg
ON mg.member = u.id AND mg.user_group = g.id
WHERE u.username = 'my_admin'
AND mg.member IS NULL;
✅ Что это делает:
берёт пользователя
my_adminберёт группу Administrator(ы)
связывает их через
modx_member_groups
Шаг 6. Заходим в админку
Теперь пробуй вход:
URL:
https://твой-сайт.by/managerЛогин:
my_adminПароль:
MyStrongPass123!
Если зашёл — супер. Сразу сделай:
поменяй пароль на свой
удали временного пользователя (если не нужен)
Если не сработало: 3 быстрых проверки
-
Неправильный префикс таблиц
Если таблицы у тебяabc_users, а ты выполнилmodx_users— запросы ушли “в никуда”. -
Группа администраторов называется иначе
Выполни запрос и посмотри точное имя:SELECT id, name FROM modx_user_groups; -
MODX кеширует права
После входа/изменений можно очистить кеш:через панель (если вошёл)
удалить папку
core/cache/*(если есть доступ по FTP/SSH)
Чек-лист, если MODX всё ещё не пускает
Перед тем как паниковать, проверьте:
✅ правильный префикс таблиц
✅ пользователь активен (
active = 1)✅ есть запись в
modx_user_attributes✅ пользователь в группе Administrator
✅ используется контекст
manager
В 9 из 10 случаев проблема именно здесь.
Почему мы решили написать эту статью
Потому что за последний год мы десятки раз видели одно и то же:
«Мы всё сделали по инструкции из интернета — но не работает».
MODX стал безопаснее.
А статьи — нет.
И если вы читаете это сейчас, значит:
вы столкнулись с реальной проблемой
и ищете не теорию, а рабочее решение
В заключение
Если коротко:
MD5 — больше не универсальный способ
старые статьи вводят в заблуждение
самый надёжный путь — создать нового администратора корректно
Если вы не хотите лезть в базу данных, боитесь что-то сломать или просто хотите сэкономить время — мы регулярно помогаем с такими ситуациями при переносе и продаже сайтов на MODX.
Главное — теперь вы понимаете, почему проблема возникла.
А значит — вы уже на шаг ближе к её решению 😉
Вопрос? Ответ
Самый надёжный способ — создать нового пользователя-администратора через phpMyAdmin и добавить его в группу Administrator. Так вы гарантированно получите вход в /manager, даже если старый пользователь сломан или настройки авторизации отличаются
В файле core/config/config.inc.php. Там указаны имя базы ($dbase) и префикс таблиц ($table_prefix).
Префикс — это начало названий таблиц (например, modx_, site_, abc_). Если у вашего сайта префикс отличается, нужно заменить modx_ в запросах на свой, иначе SQL будет выполняться “не в те таблицы”.
Это таблица профиля пользователя (атрибутов). В ней хранится связка с пользователем по internalKey. Если записи нет, MODX может работать нестабильно: не пускать в админку или некорректно применять права. Поэтому при создании нового админа мы обязательно создаём и атрибуты.
Проверьте три вещи: (1) правильный префикс таблиц, (2) что пользователь добавлен в группу Administrator, (3) очистите кеш MODX (core/cache/*) и попробуйте снова.
Иногда — да, но это менее надёжно, чем создать нового администратора. При переносах/бэкапах у старого пользователя могут быть проблемы с правами или профилем, и тогда “простая замена пароля” не поможет.
Да, если вы делаете точечные изменения и понимаете, в какой базе работает сайт. Перед правками лучше сделать резервную копию базы (Export в phpMyAdmin), а SQL выполнять строго как в инструкции.

