linuxのcronでwp-cron.phpを実行する




1年以上前に更新された記事です。
情報が古い可能性がありますので、注意してください。

wp-cronはページアクセス時に実行予定時間を過ぎている処理が実行される。
そのため、アクセス数が少ないうちは処理が貯まり、1アクセスで処理する量が増えるためタイムアウトする可能性が出てくる。
そこでシステム側のcronで定期的に処理を行い、ページ表示の障害とならないようにする。

wp-cron.php を無効にする

wp-config.php にwp-cron.phpを無効にする設定を追加する。
データベースの照合順序付近に、下記を記述する。

/** wp-cronを無効にする */
define('DISABLE_WP_CRON', 'true');

wp-cron.phpを定期的に実行するためにcronに登録

crontab初回実行の場合

crontab初回実行の場合、どのエディタで編集するかを問われるので、使用したいエディタを番号で指定する。
この設定は ~/.selected_editor に保存される。

$ crontab -e
no crontab for rakaro - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /usr/bin/vim.basic
  2. /usr/bin/vim.tiny

Choose 1-2 []:2

cronへ登録

curlでwp-cron.phpに5分毎にアクセスするように設定を追加する。

$ crontab -e
*/5 * * * * /usr/bin/php /var/www/blog/wp-cron.php > /dev/null 2>&1

サービスの再起動

念のため、サービスを再起動する。

$ sudo service php7.0-fpm restart

wp-cronの実行状況は「WP-Cron Dashboard」というプラグインをインストールすると簡単に確認することができる。
WP-Cron-Dashboard

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です