WP-CLI
Столкнулся с тем, что случайно забыл пароль от админки блога и пришлось восстанавливать. Сохраню инструкцию, вдруг какому-либо бедолаге еще пригодится 🙂
Поясню, вариант с обновлением пароля напрямую в DB не работает. Даже с MD5() он отказывается хэшировать пароль и записывать его в качестве значения.
Чтобы восстановить пароль череp WP-CLI, необходимо для начала подключиться к контейнеру:
docker exec -it wordpress bash
или(если нет bash)
docker exec -it wordpress sh
Далее проверить наличие wp-cli
wp --info
Если wp-cli нет, то можно его установить(до перезапуска контейнера)
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
Чтобы он не удалялся, необходимо добавить его в Dockerfile или compose-file.
После установки проверить снова при помощи wp --info
Затем перейти в каталог WordPress
cd /var/www/html
Вывести список пользователей
wp user list
Если будет ошибка вроде
Error: YIKES! It looks like you’re running this as root. You probably meant to run this as the user that your WordPress installation exists under. If you REALLY mean to run this as root, we won’t stop you, but just bear in mind that any code on this site will then have full control of your server, making it quite DANGEROUS. If you’d like to continue as root, please run this again, adding this flag: —allow-root If you’d like to run it as the user that this site is under, you can run the following to become the respective user: sudo -u USER -i — wp <command>
то необходимо добавить --allow-root
например
wp user list --allow-root
и можно поменять пароль
wp user update <username> --user_pass="НовыйПароль123" --allow-root
Далее идем в админку и авторизуемся с новым паролем. WordPress его хэширует самостоятельно.
Database
Чтобы узнать имя пользователя, если забыли и его, необходимо подключиться к базе WP. В моем случае это MariaDB, креды к которой я знаю.
Чтобы подключиться к MariaDB в контейнере, необходимо выполнить команду:
docker exec -it wp-database mariadb -u <username> -p
После ввести пароль и далее оперировать с SQL.
Сейчас опишу стандартный путь, но в зависимости от версий он может измениться.
Выбираем базу данных:
USE wordpress;
Далее делаем SELECT:
SELECT * FROM wp_users
Это выведет список всех пользователей со всеми полями DB.
Также напишу основные команды SQL:
- SHOW DATABASES;
- USE <DB_NAME>;
- SHOW TABLES;
- SELECT * FROM <DB_NAME>;
Точка с запятой обязательны, иначе команда просто не выполнится!