勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

WordPressのCron設定(wp-cron.php)を変更し負荷対策する方法

   2024/02/22  WordPress

WordPressのcron設定(wp-cron.php)を変更することで負荷が軽減されるという記事を見かけて設定してみた。記事にアクセスする都度、wp-cron.phpを読み込むらしくPVが多いサイトだと不要な負荷がかかる。また、あまりPVが無いサイトはwp-cron.phpにアクセスがなく、予約投稿をミスするということがありこちらも改善されるらしい。以下に対応方法をメモ。

 

wp-config.phpの編集

以下を追記することでwp-cronを無効にできる。

define('DISABLE_WP_CRON', 'true');

 

cronの設定

サーバ側のcronで動かす必要がある。以下で設定する。1分毎が良さそうだけどその辺は適宜変更する。root権限ではなくwebサーバを動かすユーザーで設定すること。

vi /etc/crontab
*/10 * * * * apache /usr/bin/php /var/www/wordpress/wp-cron.php > /dev/null 2>&1

 

wp-cronの実行内容

MySQLでwp_optionsテーブルのoption_name=cronで検索し、option_value内にシリアライズされた状態でwp-cronの実行内容が保存されている。

schedule部分が実行感覚だと思われdaily、twicedailyとかが入っている。プラグインによっては30minみたいなものが入っている。なので最小の間隔未満でcron設定しておけば大丈夫じゃないかと。

あとwp_version_check、wp_update_pluginsみたいな名前が入っており、ここが恐らく実行内容かと思われる。

 

まとめ

wp-config.phpでwp-cronを停止しサーバ側のcron設定することで対応が可能。

 - WordPress

  関連記事

Contact form7でフォーム送信時に別サーバへもデータを送信する方法
Contact form7でフォーム送信時に別サーバへもデータを送信する方法

contact form7でフォーム送信時に別サーバーでフォーム内容をPOST送 ...

WordPressのContact Form 7プラグインで入力内容確認及び送信完了ページを実装する方法
WordPressのContact Form 7プラグインで入力内容確認及び送信完了ページを実装する方法

WordPressのContact Form 7プラグインで実装されたお問い合わ ...

WP Social Bookmarking LightでSNSボタンが表示されない際の対応方法
WP Social Bookmarking LightでSNSボタンが表示されない際の対応方法

WordPressでWordPress WP Social Bookmarkin ...

WordPressのxmlrpc.phpに対する攻撃の対策方法
WordPressのxmlrpc.phpに対する攻撃の対策方法

サーバーの死活監視をしているシステムから、1つのサイトが落ちているとアラートがき ...

Contact form7で送信数を測定(トラッキングタグ)
Contact form7で送信数を測定(トラッキングタグ)

contact form7でフォーム送信が完了した時点で計測されるようにトラッキ ...