wp-cron.phpを定時実行する【ConoHa WING】

wp-cron.phpを定時実行する【ConoHa WING】ブログノウハウ

WordPressでは誰かがサイトへアクセスする度に、自サーバーのIPアドレスから「wp-cron.php」へアクセスしています。

調べてみると予約投稿の確認やXML-Sitemapのping送信確認などを制御しているそうです。

アクセスの度に必要な処理が見受けられないため、アクセス都度実行を停止しConoHa WINGのジョブスケジューラーで定期的に実行するようにしました。

今回はwp-cron.phpのアクセス都度実行の停止ジョブスケジューラーによる定時実行の設定方法を紹介します。

ジョブスケジューラーでは「毎時何分に実行」や「毎日何時何分に実行」といった設定ができます。

そらしど
そらしど

公式サイトにもジョブスケジューラーの操作方法が記載されています。この記事では実際の設定内容を含めて詳しく紹介していきます。

広告
そらしど

本業はWebプログラマー。
Cocoonのデザインをカスタマイズやブログノウハウを紹介しています。
気まぐれに遊べるおもちゃも作ってます。
リクエストは無料なので、気軽に投稿してください!
趣味はお昼寝です。
詳しいプロフィールはこちら

フォロー

wp-cron.phpとは

WordPressやプラグインでスケジューリング機能を利用するときに使用するファイルです。

wp-cron.phpを使う機能の例
  • メール投稿
  • 予約投稿
  • XML-Sitemap
  • プラグインの自動実行(バックアップなど)
  • WordPress等の自動更新

デフォルトの設定ではアクセスがある度に実行されます。しかし次のようなデメリットがあります。

アクセス都度実行のデメリット
  • アクセスが多いサイトでは、パフォーマンスの低下を招く
  • アクセスが少ないサイトでは、期待した時刻に実行されない可能性がある
  • 悪意のある大量のアクセスが行われるとサイトが重くなりやすい
広告

定時実行の設定をして大丈夫/やめたほうがいい条件

wp-cron.phpを定時実行をしても大丈夫な方の条件と、やめておいた方がいい方の条件は以下の通りです。

wp-cron.phpの定時実行をしても大丈夫な人
  • 上述のスケジューリング機能を使っていない
  • 上述のスケジューリング機能を使っているが、定期的な実行で問題ない

上述のスケジューリング機能はあくまで一例のため、WordPressテーマやプラグインで使っているか自分で調べることを推奨します。

サイトヘルスで改善の提案が出ることも

設定内容によってはWordPressのサイトヘルスステータスで「おすすめの改善」が提示されることがあります。

表示された場合は問題がないか確認しましょう。

そらしど
そらしど

「毎時30分」にしたら上記の改善が出ました。「毎時0分」では出ませんでした。

wp-cron.phpを定期的な実行にする設定方法

カスタマイズ手順

ConoHa WINGではジョブスケジューラーという機能を使って、wp-cron.phpを定期的に実行できます。

設定方法は大きく分けて以下の手順です。

wp-cron.phpの定期的な実行に設定する手順
  • wp-cron.phpのアクセス都度実行を停止

    wp-config.phpにコードを追記。コピペでOK

  • ジョブスケジューラーで定時実行を設定

    ConoHa WINGの画面で設定

そらしど
そらしど

wp-cron.phpの実行自体が不要な場合はSTEP1だけで構いません。

wp-cron.phpのアクセス都度実行を停止

WordPressで設定されている「アクセスする度にwp-cron.phpを実行」を止めます。

管理画面からは設定を変えることができないため、サーバーのファイルを編集します。

wp-cron.phpのアクセス都度実行を停止する手順
  • ファイルマネージャーを開く

    ConoHa WINGのコントロールパネルから遷移

  • サーバーからwp-config.phpをダウンロードする

    public_html/サイトのURL/wp-config.php

  • wp-config.phpを編集する

    コピペでOK。貼り付け位置に注意

  • サーバーにwp-config.phpをアップロードする

    念のためにバックアップを取ること

編集するファイルはwp-config.phpです。wp-cron.phpではありません。

ファイルマネージャーを開く

ConoHa WINGにログインし、次の順に画面を遷移します。

画面遷移

サイト管理→ファイルマネージャー(ログインが求められる場合があります)

サーバーからwp-config.phpをダウンロードする

次のフォルダへ移動しwp-config.phpをダウンロードします。(操作方法がわからない場合はこちら

ファイルの場所

public_html/サイトのURL/

wp-config.phpを編集する

下記コードをコピーして、先ほどダウンロードしたファイルの冒頭にある<?php の後ろで改行して貼り付けてください。

/** wp-cron.phpを無効化 */
define('DISABLE_WP_CRON', 'true');
Copy
コードの貼り付け例

他の行も可能ですが、wp-cron.php がうまく無効にならない場合もあるようです。

サーバーにwp-config.phpをアップロードする

編集したファイルを先ほどファイルをダウンロードしたフォルダにアップロードします。

ファイルの場所

public_html/サイトのURL/

バックアップを選択することを忘れないでください。

以上でwp-cron.phpのアクセス都度実行を停止は完了です。

ジョブスケジューラーで定時実行を設定

ConoHa WINGのジョブスケジューラーでwp-cron.phpの定時実行を設定します。

設定はブラウザ上の操作で完結できます。

ジョブスケジューラーを設定する手順
  • ジョブスケジューラーを開く

    ConoHa WINGのコントロールパネルから遷移

  • スケジュールを設定する

    設定例は「毎日1時間毎」。お好みで変更OK

ジョブスケジューラーを開く

ConoHa WINGにログインし、次の順に画面を遷移します。

画面遷移

コントロールパネル→サーバー管理→ジョブスケジューラー

複数のサーバーを契約中の場合は、サーバー管理画面で設定したいサーバーへ切り替えてください。

スケジュールを設定する

本題のジョブスケジュール設定です。

スケジュールを設定する手順
  • 「+ジョブスケジュール」ボタンをクリック

  • 「処理日時」にwp-cron.phpを実行する頻度を設定

「+ジョブスケジュール」ボタンをクリック

ジョブスケジューラー画面の右上にある「+ジョブスケジュール」ボタンをクリックします。

「処理日時」にwp-cron.phpを実行する頻度を設定

以下の設定項目があります。

処理日時の設定項目
処理日時
cron形式での入力の他に、毎時や毎日などのかんたんな入力ができる
コマンド
実行したいコマンド(今回はwp-cron.php)を入力
コメント
タイトルや処理内容など分かりやすいコメントを入力

例えば以下の入力をすると「wp-cron.phpを毎時0分に実行する」設定になります。

設定項目設定内容
処理日時毎時
実行時間0分
コマンド/usr/bin/php /home/ルートパス(個別)/public_html/サイトのURL/wp-cron.php
コメントwp-cron.phpを毎時0分に実行
wp-cron.phpを毎時0分に実行する

ConoHa WINGの.htaccess設定から確認できます。

画面遷移

サイト管理→応用設定→.htaccess設定

「a1234567」のようなアルファベットと数字で8桁の文字列のようです。

1時間で2回実行したい場合など詳細な設定は処理日時をcronにする必要があります。

入力ができたら「保存」ボタンを押します。正常に設定できると画像のようになります。

以上でジョブスケジューラーで定時実行を設定が完了です。

時間になったら実行されるか確認しましょう。利用している各プラグインの履歴を見るのが確実だと思います。

まとめ

wp-cron.phpをConoHa WINGで定時実行に設定する方法を紹介しました。

本来のcron設定はややこしいですが、Web画面で感覚的に設定できるのはいいですね。

分からないことや質問があれば下記から気軽に連絡ください。

そらしど
そらしど

最後まで読んでいただきありがとうございました。

関連のおすすめ記事

コメント

タイトルとURLをコピーしました