Как восстановить доступ к админке WordPress без имени пользователя и пароля

Опубликовано: 2018-10-02

Это кошмар, когда вы не можете войти на свой сайт WordPress. Вы уверены, что у вас правильный пароль, вы даже пытались сбросить пароль, но ничего не работает. Вы заблокированы на своем сайте. К счастью, есть быстрые методы восстановления доступа путем изменения нескольких записей базы данных или нескольких файлов через FTP. Пока у вас есть некоторый доступ к базовым ресурсам сервера, вы вернетесь в админку WP в кратчайшие сроки.

Это руководство поможет вам в следующих ситуациях:

  • опция сброса пароля не работает
  • сброс пароля работает, но вы не получаете электронное письмо (по какой-то причине)
  • вы знаете имя пользователя и пароль, но это просто не работает
  • вы испортили привилегии учетной записи
  • пользователи или таблица базы данных usermeta повреждена или случайно изменена/удалена
  • плагин/тема испортили что-то, связанное с входом в систему

Чтобы методы, описанные в этом руководстве, работали, вам потребуется только одна из следующих вещей:

  • FTP-доступ к серверу или
  • cPanel доступ к серверу, или
  • доступ к базе данных MySQL

Помощь! Я не могу войти!

Существует неограниченное количество причин, по которым вы не можете войти в систему. Неверное имя пользователя или пароль — самое простое объяснение, но я не рекомендую полагаться на эту предпосылку. Особенно, если вы знаете, что возились с WordPress, и в результате этого вход в систему не работает. Первый шаг к устранению проблемы — отключить тему и все плагины. Для этого нам не нужен доступ администратора, и действие ничего не «уничтожит». Это полностью обратимо.

Это можно сделать несколькими способами: с помощью FTP, MySQL или с помощью сценария аварийного восстановления, который поставляется с плагином WP Reset. И поскольку последнее — самое простое решение, мы рассмотрим его в первую очередь.

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

Плагин сброса WP

Используя сценарий аварийного восстановления, вы сможете деактивировать свои плагины (по одному или сразу) и тему без доступа к панели администратора WordPress.

Раздел плагинов ERS

Кроме того, вы также должны будете создать новую учетную запись администратора, обновить URL-адрес WordPress и сайта, сбросить привилегии и роли пользователей, а также повторно сканировать или переустановить основные файлы из-за пределов администратора WordPress. Искренне впечатляет!

Теперь о других методах.

Если у вас есть доступ по FTP, переименуйте папки /wp-content/plugins/ и /wp-content/themes/. Подойдет любое новое имя; просто добавьте «х» перед именем.

Если у вас есть доступ к MySQL, откройте таблицу параметров (таблица будет иметь префикс, т. е. wp_options) и найдите строки, в которых для столбца option_name установлено значение active_plugins и current_theme. Либо удалите две строки, либо измените их значения option_name, чтобы вы могли легко вернуться к ним позже. WP вернется к теме по умолчанию (Twenty Seventeen для версий до v5), если она доступна в расположении по умолчанию.

Вернитесь к wp-login.php , обновите страницу и попробуйте войти. Все еще не работает? Читать дальше.

Потратьте минуту, чтобы выяснить самый простой подход

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

Если у вас вообще нет учетной записи или у вас есть причины полагать, что вы ее испортили, тогда подход FTP работает лучше, поскольку нам нужно будет создать новую учетную запись. Положительный результат достижим как с доступом только через FTP, так и только с доступом к MySQL, поэтому не пугайтесь, если у вас есть только один доступ.

Если у вас есть доступ к WP-CLI для вашего сайта, вам не нужно возиться с файлами или базами данных. wp user предоставит вам более чем достаточно инструментов для исправления учетной записи или создания новой.

Вход в систему без имени пользователя или пароля – способ MySQL

Чтобы учетная запись WP работала, необходимо правильно согласовать несколько вещей. WP ищет имя пользователя и хешированный пароль в таблице пользователей, и если он находит одну строку, он продолжает поиск дополнительных строк в таблице метаданных пользователей. Он нуждается в них, чтобы выяснить привилегии вашей учетной записи. Если что-то из упомянутого выше не сработает, вы не сможете войти в систему или сможете, но не с нужными привилегиями. Из-за фильтров и действий WordPress любое количество плагинов и тем может изменить этот процесс и значительно усложнить отладку. Поэтому я уже советовал отключать их все.

Я также упомяну возможность запуска настраиваемого класса WP DB через раскрывающийся модуль. Ошибка в этом также может быть виновником. Чтобы убедиться, что вы не используете какие-либо выпадающие модули, переименуйте папку /wp-content/mu-plugins/. Если вы не можете найти эту папку — отлично! Это означает, что у вас нет активных вставок.

phpMyAdmin — достойный инструмент для изменения или добавления нескольких строк в базе данных WP. Большинство людей получают доступ к нему через cPanel, поскольку он предустановлен, и вам не нужно снова вводить учетные данные. Напоминаем, что cPanel доступна по адресу https://yoursite.com:2083. Если это вам недоступно, но у вас есть имя пользователя базы данных, пароль и возможность подключения к ней с удаленного хоста, я предлагаю установить бесплатное приложение HeidiSQL и подключиться, используя эти данные. Имя пользователя и пароль, сохраненные в wp-config.php , безусловно, работают, если ваш WP работает, но редко могут использоваться для подключения к MySQL с удаленного хоста из-за ограничений безопасности. То, как все настроено, зависит от сервера, и дать общий совет невозможно.

Не можете войти на свой сайт #WordPress? Имя пользователя и пароль просто не работают? Вот несколько простых способов восстановления доступа без имени пользователя и пароля.

НАЖМИТЕ, ЧТОБЫ НАПИСАТЬ

Изменение нескольких строк базы данных

Найдите свою учетную запись в таблице пользователей. Опять же — у таблицы всегда есть префикс. По умолчанию это wp_users, но это может быть что угодно; то есть: site765_users. Предполагая, что пароль неверный, отредактируйте столбец user_pass и введите новый хешированный пароль (используйте только MD5). Хэш для пароля «123456» — e10adc3949ba59abbe56e057f20f883e , но я настоятельно рекомендую использовать более приличный пароль и сгенерировать для него хэш. Сохраните строку и попробуйте войти. Не повезло? Проверим привилегии.

Запишите идентификатор своей учетной записи — он виден в таблице пользователей в столбце идентификатора. Затем найдите все строки в таблице usermeta, которые имеют это значение идентификатора для столбца user_id (ключ). Вы можете ожидать найти более 10 строк, но нам нужны те, которые имеют значения wpc_capabilities и wpc_user_level в столбцах meta_key. Установите первый на a:1:{s:13:"administrator";b:1;} а второй на 10 . Сохраните, попробуйте войти. Все равно не получается? В этом случае я предлагаю создать новую учетную запись администратора, что проще сделать через FTP.

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

Вход в систему без имени пользователя или пароля – способ FTP

Первым и важным шагом в этом методе является поиск файла functions.php активной темы. Если вы переименовали папку /wp-content/themes/, переименуйте ее обратно и оставьте в ней только тему Twenty Seventeen. Подойдет и любая другая тема, но убедитесь, что в ней нет настраиваемых функций входа в систему, которые могут вызывать ошибки.

После нахождения файла functions.php проверьте, чтобы убедиться, что он правильный. Поверьте мне в этом — я потерял часы, редактируя не тот файл. Добавить die('It works!'); как первая строка PHP файла; сохранить и обновить сайт. Если ничего не изменится, у вас неправильный файл. Отменить изменение и найти правильный. Как только вы это сделаете, добавьте этот код в начало файла;

// modify these two lines
$user_email = '[email protected]';
$user_password = '123456';

if ( !username_exists( $user_email ) ) {
  $user_id = wp_create_user( $user_email, $user_password, $user_email );

  wp_update_user( array( 'ID' => $user_id, 'nickname' => $user_email ) );

  $user = new WP_User( $user_id );
  $user->set_role( 'administrator' );
  wp_die( 'Success!' );
} else {
  wp_die( 'Username already exists.' );
}

Измените первые две строки кода, сохраните файл и перезагрузите сайт. "Успех!" должен появиться на экране, после чего вы сможете войти в систему с новым именем пользователя и паролем; те, которые вы установили в первых двух строках кода. Не забудьте удалить код из functions.php , когда закончите.

Другие способы восстановления доступа к WordPress

Если у вас есть доступ к FTP, MySQL или cPanel, описанные выше методы позволят вам войти в систему. Если нет, обязательно оставьте комментарий ниже. Мне было бы любопытно услышать, что мешает вам войти в систему.

Распространенной «мелочью», которая вызывает проблемы у некоторых людей, является не открытие wp-login.php по правильному URL-адресу. Либо используйте «www», если он не установлен в качестве адреса сайта, либо наоборот. Или не использовать правильный протокол — HTTPS вместо HTTP и наоборот. Хотя страница может загрузиться, это не означает, что вы находитесь на правильном URL-адресе, поэтому дважды проверьте его.

Если вы пришли сюда, чтобы узнать, как взломать чей-то WordPress, извините, это не та статья . Имея доступ к FTP или MySQL, я предполагаю, что вы законный владелец и не будете использовать описанные методы в злых целях.