Как восстановить доступ к админке WordPress без имени пользователя и пароля
Опубликовано: 2018-10-02Это кошмар, когда вы не можете войти на свой сайт WordPress. Вы уверены, что у вас правильный пароль, вы даже пытались сбросить пароль, но ничего не работает. Вы заблокированы на своем сайте. К счастью, есть быстрые методы восстановления доступа путем изменения нескольких записей базы данных или нескольких файлов через FTP. Пока у вас есть некоторый доступ к базовым ресурсам сервера, вы вернетесь в админку WP в кратчайшие сроки.
Это руководство поможет вам в следующих ситуациях:
- опция сброса пароля не работает
- сброс пароля работает, но вы не получаете электронное письмо (по какой-то причине)
- вы знаете имя пользователя и пароль, но это просто не работает
- вы испортили привилегии учетной записи
- пользователи или таблица базы данных usermeta повреждена или случайно изменена/удалена
- плагин/тема испортили что-то, связанное с входом в систему
Чтобы методы, описанные в этом руководстве, работали, вам потребуется только одна из следующих вещей:
- FTP-доступ к серверу или
- cPanel доступ к серверу, или
- доступ к базе данных MySQL
Помощь! Я не могу войти!
Существует неограниченное количество причин, по которым вы не можете войти в систему. Неверное имя пользователя или пароль — самое простое объяснение, но я не рекомендую полагаться на эту предпосылку. Особенно, если вы знаете, что возились с WordPress, и в результате этого вход в систему не работает. Первый шаг к устранению проблемы — отключить тему и все плагины. Для этого нам не нужен доступ администратора, и действие ничего не «уничтожит». Это полностью обратимо.
Это можно сделать несколькими способами: с помощью FTP, MySQL или с помощью сценария аварийного восстановления, который поставляется с плагином WP Reset. И поскольку последнее — самое простое решение, мы рассмотрим его в первую очередь.
WP Reset — это удивительный инструмент, предназначенный для облегчения задач сброса, отладки и тестирования. Он поставляется с множеством функций, включая несколько вариантов сброса и, конечно же, сценарий аварийного восстановления.
Используя сценарий аварийного восстановления, вы сможете деактивировать свои плагины (по одному или сразу) и тему без доступа к панели администратора WordPress.
Кроме того, вы также должны будете создать новую учетную запись администратора, обновить 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, я предполагаю, что вы законный владелец и не будете использовать описанные методы в злых целях.