Чистил БД и сломался сайт, восстановление бекап БД не решает проблемы, как починить сайт?
Произошла ситуация - поломал сайт.
опишу подробно шаги:
1. решил я почистить БД от мусора старого
2. Сделал дамп БД и скачал на ПК.
3. Начал удалять мусор
4. Упала админка и главная страница сайта (мой акк перестало считать админом) (user and usermeta я не удалял и эти данные в таблицах были)
5. Восстановил БД, изменений ноль.
6. Перезапустил сервер, появилась заглушка на всех страницах (сайт в разработке там там там там), и работает админка (мой акк всё нормально). удалил файл с заглушкой, ошибка 404 теперь на страницах. (возвращаем фаил index.php и ошибки 404 больше нет, заглушка что сайт в разработке)
Если хочу создать новую страницу, ошибка "Ошибка публикации. Ответ не является допустимым ответом JSON."
так же в здоровье сайта можно получить такую информацию
"
REST API — один из способов коммуникации WordPress и других приложений с сервером. К примеру, экран редактора блоков использует его для отображения и сохранения ваших записей и страниц.
При тестировании REST API был возвращен неожиданный результат:
Конечная точка REST API:
https://babyki.by/wp-json/wp/v2/types/post?context=edit |
https://babyki.by/wp-json/wp/v2/types/post?context=edit
Ответ REST API: (404) Not Found
"
Дополнительно:
Нужно смотреть что пишется в логах БД. Потому-что 404 - это не очень информативно и может
быть просто следствием другой ошибки.
Ответ не является допустимым ответом JSON.
смотри в консоли разработчика браузера (вкладка network -> выбрать запись -> вкладка Response), что тебе вернулось в этом json, скорее всего сообщение об ошибке смешалось с ответом, так же смотри логи веб сервера, там будут так же сообщения об ошибке, по которым все можно будет понять
"-08-23T15:05:43.216544Z 827 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead' "
Дебаг режим выдаёт одну ошибку в админке , другие страница просто 404
Warning: fileperms(): stat failed for /var/www/www-root/data/www/babyki.by/index.php in /var/www/www-root/data/www/babyki.by/wp-admin/includes/file.php on line 2147
вот строки
// Set the permission constants if not already set.
if ( ! defined( 'FS_CHMOD_DIR' ) ) {
define( 'FS_CHMOD_DIR', ( fileperms( ABSPATH ) & 0777 | 0755 ) );
}
if ( ! defined( 'FS_CHMOD_FILE' ) ) {
это 2147 ---->define( 'FS_CHMOD_FILE', ( fileperms( ABSPATH . 'index.php' ) & 0777 | 0644 ) );
}
return true;
}
в итоге он ссылается на файл index который выводит заглушку для сайта (в разработке)
Ты сделал чистку. Система упала. Сделай несколько steps назад до того момента пока все работало.
Warning: fileperms(): stat failed for /var/www/www-root/data/www/babyki.by/index.php in /var/www/www-root/data/www/babyki.by/wp-admin/includes/file.php on line 2147
какой абсурд, зачем рядовая страница меняет права доступа к файлу, это как при приготовлении ужина (вот буквально кастрюля на печи в ней все кипит и жарится в сковородке) ты бы побежал в магазин за продуктами.
ошибка 404 это потому что ты 'удалил файл с заглушкой', верни назад и вообще пойми почему у тебя заглушка появилась.
Очевидно что кроме базы данных ты что то сделал с файлами, откати и их назад
Это очевидно, решение либо разбираться буквально занимаясь отладкой кода, либо решать задачу восстановления сайта. Раз сайт в каком то смысле работает (под конкретным пользователем) значит проблема почти наверняка в месте аутентификации и настройки прав доступа.
Если не было рабочих бакапов, в следующий раз ты делать их станешь (и само собой проверять на работоспособность), такова селяви.
И так я сделал это, после того как я с нуля поставил БД и заменил его имя на старое и влил бекап. я поставил такой же быстро новый сайт, от туда я взял данные с index.php и вставил на рабочий сайт, и он ожил.
- Вообще у меня большое разочарование к сайту сделанному на вордпресс. Постоянно что-то ломается, внешний вид сайта восстанавливается только из хостинга, с потерями. Плагины недоделанные, а только для рекламы версии про. Думаем может быть самописный сайт заказать и не мучиться с этим сайтом на WP.
Вот вы такой знаток и то не смогли узнать причину поломки сайта, а что делать администратору сайта, который постоянно борется с ошибками на сайте.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


После ручной чистки базы и 404 на REST API сначала нужно остановить любые дальнейшие удаления и зафиксировать текущее состояние файлов и базы. То, что восстановление дампа не помогло, означает, что проблема может быть не только в БД: могли измениться файлы,
.htaccess/Nginx, константы вwp-config.php, активная тема, плагины или подключение к другой базе.Порядок диагностики:
wp-config.php: имя БД, префикс таблиц$table_prefix, домен вWP_HOME/WP_SITEURL, если они заданы.index.php, а не заглушка хостинга..htaccess./wp-json/и посмотрите фактический ответ сервера.Для Apache стандартный блок WordPress в
.htaccessдолжен быть примерно таким:<IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Если пользователь потерял права администратора, проверьте
wp_usermetaпо текущему префиксу: ключи должны быть видаwp_capabilitiesиwp_user_level, гдеwp_совпадает с вашим$table_prefix. Частая ошибка после восстановления — база одна, а префикс в конфиге другой.