WordPressのwp-cron.phpをサーバーのcronで動かす

プラグイン「Postie」とGmailを使って記事をメール投稿するコンテンツを作ったのですが処理が遅延する。
調べるとWordPressの疑似Cron(wp-cron.php)が宿題を溜め込むタイプという事が原因でした。

【参考サイト】
Postieで快適WordPressメール投稿Fenix
WordPressの予約投稿が失敗するからALTERNATE_WP_CRONをtureにしたらdoing_wp_cronが激増したむねひろ@プログラマー


WordPressの疑似Cronとは

WordPressの予約投稿処理を行う「wp-cron.php」ですが、サーバーのCronとは異なり、 「ウェブサイトにアクセスがある度に時間を読み、予約された処理があれば実行する」というものなので困ります。
ぜんぜん困ります。
アクセスが少ないサイトの場合は何日も処理が実行されないことになるじゃないですか。
そこで、この疑似cronを停止してサーバーのCron設定を使う事にします。

wp-cron.phpを使うよりサイトの表示も早くなるし良い事づくしの様です。
という事で、今後自分が使うレンタルサーバー「mixhost」「さくらインターネット」「Xserver」「Biz メール&ウェブ」それぞれの設定について記録しておきます。

wp-cron.phpの動きを止めてサーバーのcronで動かすための設定

WordPress側の共通設定

どのレンタルサーバーを使う場合も共通です。
WordPressインストールフォルダ直下にある「wp-config.php」をダウンロードして下記を「設定が必要なのはここまでです…」の上に追記してアップロードします。
※wp-config.phpをインストールフォルダより上の階層に移動している人は上の階層を探してください。

//wp-cronを動かす
//define('ALTERNATE_WP_CRON', true);
//wp-cronを停止
define('DISABLE_WP_CRON', 'true');

↑これでwp-cron.phpを止めました。
 また動かす時は下記の様に編集してアップロードします。

//wp-cronを動かす
define('ALTERNATE_WP_CRON', true);
//wp-cronを停止
//define('DISABLE_WP_CRON', 'true');

mixhostで1分に1回wp-cron.phpを動かす設定

cPanelにログイン

  1. 「詳細」>「Cron ジョブ」をクリック
  2. 「新しい cron ジョブの追加」項目を設定
    mixhostのCron設定
    コマンド:
    /usr/local/bin/php /home/ユーザー名/public_html/フォルダへのパス/wp-cron.php
  3. 「新しい cron ジョブの追加」をクリック

※ ちゃんと動くかどうかは予約投稿が正常に処理されるかでご確認ください。

Cronの設定

mixhost ヘルプ&サポート

さくらインターネットで2分に1回wp-cron.phpを動かす設定

さくらインターネットは最低が2分単位だったので…

レンタルサーバ コントロールパネルにログイン(新コントールパネル)

  1. 「スクリプト設定」>「CRON設定」をクリック
  2. 「スケジュール追加」をクリック
  3. 実行コマンド
    /usr/local/bin/php /home/ユーザー名/www/フォルダへのパス/wp-cron.php 1> /dev/null
  4. コメント(何の処理なのかわかる説明を記入)
  5. 実行日時
    さくらインターネットのCron

※ ちゃんと動くかどうかは予約投稿が正常に処理されるかでご確認ください。

CRONの設定

さくらのサポート情報

Xserverで1分に1回wp-cron.phpを動かす設定

サーバーパネルにログイン(X10プラン)

  1. 「アカウント」>「Cron設定」をクリック
  2. 「Cron設定追加」タブをクリック
  3. 分~曜日の設定を入力
    XserverのCron設定
  4. コマンド(下記はPHP7.2の時の設定コマンドです)
    /usr/bin/php7.2 /home/サーバーID/ドメイン名/public_html/wp-cron.php
  5. コメント(何の処理なのかわかる説明を記入)
  6. 確認画面へ進み、登録

※ ちゃんと動くかどうかは予約投稿が正常に処理されるかでご確認ください。

Cron設定

レンタルサーバー【エックスサーバー】

Biz メール&ウェブで1分に1回wp-cron.phpを動かす設定

コントロールパネルにログイン

ファイルパーミッションと所有者確認

※定期実行タスクの設定を行う前に画面上部の「ファイル」からwp-cron.phpの権限と所有者を設定します。

  1. 「/users/ドメイン管理者>」からwp-cron.phpがあるディレクトリを開き、「wp-cron.php」の[詳細]をクリックします。
  2. 「操作」欄の[属性変更]をクリックして所有者の[実行]にチェックを入れ[保存]。

定期実行タスク設定

  1. 「システム」>「定期実行タスク」をクリック
  2. 「新規作成」ボタンをクリック
  3. タスクグループ:新規作成にチェック
  4. コマンド(PHP7.2の場合)
    /usr/local/global-bin/php-7.2.cgi /usr/home/アカウント名/www/htdocs/フォルダのパス/wp-cron.php
  5. タスクの実行感覚:「日時指定」にチェックを付ける
  6. 下図の様に設定
    Bizメール&ウェブのCron設定
  7. 「保存」をクリック

※ ちゃんと動くかどうかは予約投稿が正常に処理されるかでご確認ください。

Cronてなんて読むの問題

クロンと読むんだと思ってますが、「クーロン」と読む人も居るので何が正しいのか調べてみた。

日本語ではクーロンという読みが慣習的に広く用いられているが、英語では通常クロンまたはクローンと発音する。

crontab – Wikipedia

出たよ「日本では」。
和製やめろー!混乱するだロー!


Comments

コメントを残す