ご注意下さい
この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。
wp-cron.phpが性能に大きな影響を及ぼすことは以前の記事でご紹介しましたが、1時間に1度の実行、と少し間隔が広すぎましたので今回は5分ごとに実行するようにチューニングしてみようと思います。
-
WordPressの性能チューニング(cron)
Wordpressの動作性能に大きな影響を及ぼすwp-cron.phpについてOS側から実行させる手順について解説します。続きを見る
軽くおさらい
こはおさらいになりますが、wp-config.phpからcron起動を無効にします。
/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');
define('DISABLE_WP_CRON', 'true');
/**#@+
* 認証用ユニークキー
*
anacronの設定(5分に1度起動する)
/etc/cron.hourly配下に0wp-cron.cronファイルを作成して、だいたい1時間に1度wp-cron.phpをOSから起動していたのですが、こちらを今回は変更します。
/etc/cron.d配下に、1時間に1度/etc/cron.hourly配下のスクリプトを実行しなさい、と書かれたスクリプト0hourlyがありますが、こちらを1wordpressとしてコピー(rootでcp-p 0hourly 1wordpress)として下さい。1wordpressは以下のようなスクリプトとなります。
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
*/5 * * * * root run-parts /etc/cron.wordpress
この*/5は5分ごと、という意味になります。0,5,10,15....とカンマ区切りで全部記載しても構いません。10分ごとにしたければ*/10となります。
次にこのスクリプトで指定した/etc/cron.wordpressディレクトリを作成し、0wp-cron.cronというファイルを作成します(/etc/cron.hourly/0wp-cron.cronをmvして下さい)。
#!/bin/bash
# Only run if this flag is set. The flag is created by the yum-cron init
# script when the service is started -- this allows one to use chkconfig and
# the standard "service stop|start" commands to enable or disable yum-cron.
# Action!
exec /usr/bin/wget -q -O - https://blog.kamata-net.com/wp-cron.php?doing_wp_cron 2>&1
anacrondの再起動をしてこれで完了です。
# systemctl restart crond
動作確認
/var/log/cronファイルをtailして5分(ぐらい)に1度起動されていることを確認して下さい。
# tail -f /var/log/cron Jan 1 21:30:01 kamatawww crond[29703]: (CRON) INFO (Syslog will be used instead of sendmail.) Jan 1 21:30:01 kamatawww crond[29703]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 67% if used.) Jan 1 21:30:01 kamatawww crond[29703]: (CRON) INFO (running with inotify support) Jan 1 21:30:01 kamatawww crond[29703]: (CRON) INFO (@reboot jobs will be run at computer's startup.) Jan 1 21:35:01 kamatawww CROND[29798]: (root) CMD (run-parts /etc/cron.wordpress) Jan 1 21:35:01 kamatawww run-parts(/etc/cron.wordpress)[29798]: starting 0wp-cron.cron Jan 1 21:35:22 kamatawww CROND[29797]: (root) CMDOUT (/etc/cron.wordpress/0wp-cron.cron:) Jan 1 21:35:22 kamatawww CROND[29797]: (root) CMDOUT () Jan 1 21:35:22 kamatawww CROND[29797]: (root) CMDOUT (HTMLが出力されているので割愛) Jan 1 21:35:22 kamatawww run-parts(/etc/cron.wordpress)[29827]: finished 0wp-cron.cron Jan 1 21:40:01 kamatawww CROND[29948]: (root) CMD (run-parts /etc/cron.wordpress) Jan 1 21:40:01 kamatawww run-parts(/etc/cron.wordpress)[29948]: starting 0wp-cron.cron Jan 1 21:40:29 kamatawww CROND[29947]: (root) CMDOUT (/etc/cron.wordpress/0wp-cron.cron:) Jan 1 21:40:29 kamatawww CROND[29947]: (root) CMDOUT () Jan 1 21:40:29 kamatawww CROND[29947]: (root) CMDOUT (HTMLが出力されているので割愛) Jan 1 21:40:29 kamatawww run-parts(/etc/cron.wordpress)[29979]: finished 0wp-cron.cron
記事は以上。