Как отключить стандартный Cron на WordPress и включить серверный?

Как отключить wp-cron в WordPress и включить серверный

Стандартный планировщик заданий WordPres — Wp-Cron не только уязвим к кибератакам, но и сильно нагружает сервер. Поэтому, если у вас свой VPS — дайте WordPress «отдохнуть». Отключите встроенный планировщик и включите Cron на сервере. Как это сделать — читайте в моем пошаговом руководстве.

Что такое Cron и Wp-Cron?

Cron — это планировщик заданий, утилита в Unix-подобных операционных системах. Используется для автоматического выполнения скриптов/команд по расписанию в заданное время. Название cron происходит от греческого χρόνος (chronos) — время.

В системе управления контентом WordPress разработчики внедрили свой собственный планировщик — Wp-cron.php. В его задачи входит:

  • Проверка обновлений;
  • Публикация запланированных записей;
  • Рассылка email уведомлений;
  • Очистка корзины;
  • Создание ревизий;
  • …и другие сервисные задачи тех или иных компонентов/плагинов WordPress.

Недостатки Wp-Cron

  1. Главный недостаток Wp-Cron заключается в том, что при каждом посещении вашего сайта — WordPress начинает обращаться к wp-cron.php. Если у сайта большой трафик — Wp-Cron будет грузить сервер. А если наоборот, низкий — будет работать с опозданием. При большом количестве WordPress сайтов на одном сервере — отключенный Wp-Cron дает ощутимую производительность.
  2. Во-вторых, иногда Wp-Cron может просто «заглючить» и не выполниться. При этом, критически важные задачи не будут отправлены в работу, что повлечет за собой системный сбой. В моей практике такое бывало, и не раз.
  3. И третье — уязвимость. Wp-Cron работает «на поверхности», и злоумышленники могут вмешаться в его работу. К примеру, попытаться получить доступ к файлу wp-cron.php и добавить туда свое задание, которое будет загружать вредоносный скрипт/код. Или применить DDOS-атаку: хакеры посылают неограниченное количество запросов к URL/wp-cron.php?check=46cbe1674da1d2888104482d6ed4f87f, далее активируются неиспользованные скрипты, которые накапливаются в оперативной памяти, потребляя серверные ресурсы. В итоге, если сервер слабый — начинаются проблемы и сайт «падает».

Так что, Wp-Cron для меня это уязвимая и хаотическая служба, которую нужно отключать в обязательном порядке. Серверный (бекендный) Cron работает надежнее, быстрее и стабильнее.

Отключение Cron в WordPress

Открываем файл wp-config.php (лежит в корневой директории сайта) и добавляем строчку:

define( 'DISABLE_WP_CRON', true );

Как отключить стандартный Cron на WordPress и включить серверный?

Стандартный планировщик WordPress отключен. Теперь советую установить плагин WP Crontrol, чтобы контролировать выполнение всех заданий в CMS системе:

WP Crontrol

Включение Cron на сервере

Серверный планировщик заданий Cron можно включить в командной строке (команда crontab -e) или через панель управления хостингом. cPanel, ISPmanager, CyberPanel, DirectAdmin и другие контроль-панели уже содержат утилиту Cron (Crontab/Cronjobs/Планировщик заданий). Находим ее и создаем новое задание с параметрами выполнения, к примеру:

Как отключить стандартный Cron на WordPress и включить серверный?

В поле «Команда» добавляем: wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Как видно, для обращения к планировщику WordPress я использую утилиту wget, которая входит в состав всех Unix-подобных систем. Это самый простой рабочий способ. Частоту запуска я настроил на выполнение каждых 5 минут, но вы можете изменить на свое усмотрение (если сервер слабый — поставить раз в 10 или 30 минут, или наоборот для некоторых плагинов/приложений требуется обновление каждую минуту — *).

Если на сервере порты 80 и 443 закрыты, то метод wget не пройдет и самым надежным будет метод обращения по php:

cd /var/www/vashsite.com/public_html; php wp-cron.php doing_wp_cron > /dev/null 2>&1

Есть еще один метод — curl. Но из-за его ненадежности использовать не рекомендую (ваш серверный или облачный фаервол запросто может заблокировать curl-запросы).

Сохраняемся и сразу проверяем работает ли крон в плагине WP Crontrol — задания должны начать выполняться. Не выполненные или проблемные будут подсвечиваться желтым цветом:

Как отключить стандартный Cron на WordPress и включить серверный?

Вот и все. Таким простым способом можно быстро отключить планировщик Wp-Cron, разгрузить WordPress и увеличить скорость работы сайта.

Оценка:
( 1 оценка, среднее 5 из 5 )
Подписка на KRASHENININ.TECH

Получайте регулярные обновления на почту!    


Author
Виталий Крашенинин/ автор статьи
Digital-жрец блога Krasheninin.tech, публицист, аналитик, исследователь веб-технологий. С 2011 года в IT. Сфокусирован на кибербезопасности, системном администрировании, создании сайтов и SEO. Подробнее>>
Поделиться материалом в соцсетях:
KRASHENININ.TECH - блог о веб-технологиях, и не только
Подписаться
Уведомление о
guest
1 Комментарий
Встроенные отзывы
Просмотреть все комментарии
Alex
Alex
1 месяц назад

Very good

1
0
Есть мысли? Прокомментируй!x
()
x