WordPressのwp-cron.phpを無効化し、cronで定期実行する方法をまとめました。
wp-cron.phpファイルとは
wp-cron.phpは、WordPressで「予約投稿」「バックアップ処理」「自動更新」「XML-Sitemap」などに使用されます。 通常はサイトへのアクセスがあるたびに実行されるため、アクセスが多いサイトの場合は無駄に負荷が増えてパフォーマンスが低下する可能性があります。 また、DDoS攻撃に悪用される危険性があるため、wp-cron.phpを無効化し、Webサーバー側のcronでwp-cron.phpを一定時間毎にだけ実行するようにするのがおすすめです。
wp-cron.phpを無効化
「wp-cron.php」を無効化するには、以下の内容を記述します。
■wp-config.php
<?php
define('DISABLE_WP_CRON', 'true'); # 先頭に記載
cronでwp-config.phpを定期的に実行
wp-cron.phpは、WordPressで「予約投稿」「バックアップ処理」「自動更新」「XML-Sitemap」などに使用されます。 そのため、「予約投稿」「バックアップ処理」「自動更新」「XML-Sitemap」を停止させたくない場合は、cronで1時間に1回ほど定期的にwp-config.phpを実行させるようにするといいでしょう。 cronの設定例は以下のとおり。
5 * * * * curl http://XXXXXX.com/wp-cron.php > /dev/null 2>&1
.htaccessで「wp-cron.php」のアクセス制限
.htaccessで「wp-cron.php」のアクセス制限をすると良いでしょう。
■.htaccess
order deny,allow deny from all allow from xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxxは、cronを実行するWebサーバーのIPアドレスを記述すれば、 cronを実行するWebサーバー以外からは「wp-cron.php」にアクセスできなくなります。
コメント