サーバークーロンの使い方

WordPressとクーロン

クーロンはユーザーに自動メールを送ったり、他のサイトのスケジュールされたタスクを実行するための仕組みです。

本来クーロンはサーバー側で実装するものですが、月額数百円程度のサーバー環境では用意されていないことが多く、全てのホスティング会社がサーバークーロンを提供してくれるわけではありません。

そのため、WordPressは専用のクーロン(通常 : WPクーロン)を用意しています。サーバー側のクーロンが利用できない場合でもこの様にWPクーロンを使用できるのは素晴らしいことです。

しかし、擬似クーロンには1つだけ弱点があります。

ユーザーがサイトにアクセスするたびに実行されるものであり、指定された時間に100%実行されるものではない

そのため、厳密に指定した時間で処理を行わせたい場合は使用するクーロンをWPクーロンからサーバークーロンに処理を切り替える必要があります。

クーロンの切り替え方法

使用するクーロンを切り替えるにはやや技術的な知識が必要になりますが、手順に沿って作業を行えば安全に行うことができます。ただし、作業を行うにはFTP接続またはSSH接続が必要となりますので、お持ちでない場合はまず先に用意をお願いします。

注意

本作業を行う場合は、コマンドプロンプト(またはターミナル)で下記の両方のコマンドが必要です。

Linux Command
whereis php
Linux Command
crontab -e
補足

必要なコマンドが実行できない場合は下記のいずれかに該当しますので、契約しているホスティング会社に問い合わせを行ってください。

  • お使いのサーバー環境ではWPクーロンからサーバークーロンへの切り替えは不可能
  • ホスティング会社の管理画面から設定が可能になっており、コマンドからは操作が不可能なだけ
  • デフォルトでサーバークーロンが有効になっている。

wp-cron.phpまでのフルパスを取得

WPクーロンからサーバークーロンへの切り替えを行うには、まず初めにクーロン処理を制御している  wp-cron.phpを見つける必要があります。

 wp-cron.phpは通常WordPressのインストールディレクトリにあります。  home   username   www   public_html   wp-cron.phpの様なディレクトリ構造になっているはずなので探してください。

見つけたらファイルまでのフルパスをコピーして保存してください。後ほど使います。

PHP実行ファイルまでのフルパスを取得

次にPHPの実行ファイルのフルパスを取得します。下記コマンドを打ち込むことで取得可能です。

Linux Command
whereis php

コマンドを打つと/usr/bin/phpの様なディレクトリが返ってきますのでこのパスをメモしてください。

これら両方の情報を取得できましたら、次のステップに進んでください。

サーバークーロンを編集する

サーバークーロンからWPクーロンを定期的に実行させるために次のコマンドを実行して、クーロンタブを開きます。

Linux Command
crontab -e

クーロンタブを開くと下記の様な画面が開きます。

cron tab
cron tab

1番下の行に下記の様な形式のコードを書き加えてください。

Apache
* * * * * apache 【php実行ファイルへのパス】 【wp-cron.phpへのパス】 > /dev/null 2>&1

次のコードは1例です。

Apache
* * * * * apache /usr/bin/php /var/www/wordpress/wp-cron.php > /dev/null 2>&1

このコードは1分毎に  wp-cron.phpを呼び出す様にサーバークーロンにタスクを加えています。これでサーバークーロンは完成です。

WPクーロンの無効化

サーバークーロンの設定が正常に完了している場合はWPクーロンを無効にすべきです。

WPクーロンを無効にするには  wp-config.phpに次の定数を加えます。

WordPress
define('DISABLE_WP_CRON', 'true');