Intereting Posts
Single: Prev и next Post в том же порядке, что и основной запрос, во всех категориях Пользовательские поля в Permalinks? Как получить пользовательские типы сообщений, чтобы хорошо играть с schema.org (иначе как обернуть содержимое в разметке schema.org)? Правильный способ использования get_the_content () в front-page.php и content-home.php? Попытка получить авторскую почту для отправки электронной почты с страницы single.php в WordPress? Что такое действие, которое нужно использовать, если вы хотите зафиксировать новый пароль во время смены пароля? Как подключиться к вызову action / filter Постоянная ссылка продукта WooCommerce изменена Включить пользовательскую таблицу в результаты поиска Лучший способ сделать JSON API из WordPress? Загружать скрипты только для выбранного шаблона больше тега в $ post-> content при использовании get_pages Сохранение метаданных в пользовательском типе сообщения Можно ли упорядочить ссылки Next / Prev Post по заказу меню или мета-ключом? Импорт данных для плагина дополнительных настраиваемых полей?

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

Я знаю, что есть такие инструменты, как pingdom.com и uptimerobot.com, которые будут отслеживать ваш сайт и сообщать вам, если они не работают , но я обнаружил, что мой сайт WordPress испытывает страшную «ошибку, устанавливающую соединение с базой данных» чаще, чем хотелось , и я хотел бы получить какое-то уведомление, когда это произойдет (но не в форме жалобы пользователя!). Pingdom и Uptimerobot не считают эту ошибку и, таким образом, не нажимают никаких уведомлений.

Существуют ли какие-либо простые инструменты или методы, которые будут отслеживать мой сайт для этой конкретной проблемы (и, возможно, другие проблемы?), Которые могут быть не пойманы иначе.

[Изменить] 1. Я имею в виду конкретно известную ошибку WordPress, которая часто возникает из-за различных причин подключения к DB. При возникновении ошибки посещение сайта возвращает белую страницу по умолчанию с текстом, показанным ниже.

  1. Для целей этого вопроса меня не интересует, почему это происходит или как это исправить, но вместо этого я просто хотел бы выяснить, как автоматически контролировать его и получать уведомление . Благодарю.

введите описание изображения здесь

Solutions Collecting From Web of "Как следить за сервером за ошибкой при установлении соединения с базой данных"

Фактически вы можете использовать Pingdom для проверки такой ошибки, а не прямой проверки на ответ с сервера, который вы можете настроить для проверки конкретной строки на странице. Например, если ваша страница имеет какой-то согласованный бит текста на домашней странице, вы можете найти это.

В этой записи Pingdom есть информация о проверке строк:

Сделайте большую часть своей проверки HTTP: передовая практика для дополнительных настроек

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

Вы можете переопределить сообщение файлом wp-content/db-error.php .

Затем в этом файле вы можете зарегистрировать ошибку или отправить электронное сообщение, чтобы предупредить, что есть проблема. Я рекомендую вам не отправлять электронную почту на каждую ошибку, потому что вы можете получать много писем через несколько секунд.

Как вы подключаетесь к базе данных? Не могли бы вы поймать исключение, которое отправляет вам электронное письмо?

С WordPress я предполагаю, что это PHP, поэтому …

  try { // connect to database } catch(PDOException $ex) { $this->output_error_string .= "$ex"; mail(/* send mail */); } 

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

Решение WordPress, зависящее от того, что предлагает @sdexp, должно переопределить класс wpdb , предоставив свою собственную реализацию (в файле wpdb.php, размещенном в / wp-content), который отличается от основного только действием выполняются при сбое соединения. Очевидно, это мягкая вилка wpdb, но этот класс не сильно меняется и с умным использованием методов php magic call , set и get в вашей реализации вы можете свести к минимуму возможность дальнейшего сбоя еще больше.

Тем не менее, ваш лучший путь – использовать внешнюю службу. Мониторинг – это удивительно то, что не очень легко получить право, если вы раньше этого не делали. Какая услуга? StackOverflow или ServerFault, вероятно, гораздо лучше, чтобы спросить, поскольку это действительно не проблема WordPress.