Вопрос или проблема
У меня возникла очень странная проблема с сайтом на WordPress:
Пользователи перечислены в таблице WP Users, пароли правильные (я несколько раз менял пароль напрямую в базе данных), но при входе в WP система говорит, что пароль для каждого пользователя неверный.
Я изменил файл конфигурации WP, установив Debug Log на True, но никакие логи не создаются. Я далее проверил параметры WP на правильный URL сайта и заменил все файлы ядра WP – без эффекта.
Кто-нибудь имеет какие-либо идеи/подсказки?
Я изменил файл конфигурации WP, установив Debug Log на True, но никакие логи не создаются. Я далее проверил параметры WP на правильный URL сайта и заменил все файлы ядра WP – без эффекта.
Я создал dummy html страницу – странно, она недоступна, выдаёт 404 not found.
Права на public_html установлены на 770.
Ответ или решение
Проблема с логином пользователей в WordPress, когда система не принимает правильные пароли, может быть вызвана несколькими причинами. Давайте рассмотрим возможные шаги по диагностике и решению вашей ситуации.
-
Проверьте хеширование паролей: Убедитесь, что пароли пользователей в базе данных правильно хешированы. WordPress использует функцию
wp_hash_password()
для хеширования паролей. Если вы напрямую изменяли пароли в базе данных, вам следует использовать встроенные функции WordPress для изменения пароля, чтобы убедиться, что он правильно закодирован. Это можно сделать через функциюwp_set_password()
. -
Очистка кэша: Если ваш сайт использует кэширование, попробуйте очистить кэш. Это может быть кэш на уровне сервера (например, Varnish) или кэш плагинов (например, W3 Total Cache, WP Super Cache). Иногда старые кэшированные данные могут мешать корректной работе сайта.
-
Проверьте файл
.htaccess
: Убедитесь, что ваш файл.htaccess
корректен. Попробуйте сбросить его содержимое до следующего (стандартного) вида:# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
-
Проверка плагинов: Отключите все плагины, переименовав папку
wp-content/plugins
наplugins_old
. Затем попробуйте выполнить вход. Если вы сможете войти, то одна из плагинов вызывает конфликт. -
Проверка темы: Переходите на одну из стандартных тем WordPress (например, Twenty Twenty-One), чтобы исключить возможность конфликта с вашей текущей темой. Это можно сделать, изменив имя папки вашей текущей темы.
-
Проверка прав доступа: Убедитесь, что права доступа к папкам и файлам вашего WordPress установлены корректно. Для папок обычно используются права
755
, а для файлов644
. Права770
могут быть слишком строгими и вызывать проблемы с доступом. -
Ошибки сервера: Проверьте логи ошибок вашего веб-сервера. Если они не доступны, возможно, вам нужно включить их в конфигурации сервера или обратиться к вашему хостинг-провайдеру для получения доступа.
-
Использование командной строки: Если у вас есть доступ к командной строке, вы можете использовать WP-CLI для сброса паролей, создания новых пользователей или выполнения других задач. Например, для сброса пароля можно выполнить команду:
wp user update USERNAME --user_pass=NEWPASSWORD
-
Ошибка 404 в HTML-странице: Если доступа к вашему временно созданному HTML-файлу также нет и вы получаете 404 ошибку, это может указывать на проблемы с конфигурацией сервера. Убедитесь, что файл находится в нужном каталоге и правильный путь к нему указан, либо проверьте настройки вашего веб-сервера.
Я надеюсь, что эти шаги помогут вам разрешить проблему с входом пользователей. Если ни один из этих шагов не сработает, возможно, стоит рассмотреть вариант миграции вашего сайта на новую установку WordPress, сохранив содержимое, или обратиться к профессиональному разработчику для более детальной диагностики.