wp-cron.phpへのアクセスログを減らしたいのですが【WPH】

wp-cron.phpについては、WordPressサイトへのアクセスがあるたびに起動されてしまうアクセスとなります。WordPressのデフォルトの設定でそうなっているため、ローカルホストからのアクセスが多く記録され、不審に思われる方もいらっしゃるかもしれません。

WordPressサイトにアクセス⇒(デフォルト状態では)wp-cron.phpが起動する⇒予約投稿等の時刻を過ぎているのに公開されていない記事はないか、をチェックし、必要に応じて記事を公開する、というような動きになります。

そのため、アクセスのないサイトの場合は、wp-cron.phpの起動されませんが(予約投稿も無効になる)、アクセスの多いサイトの場合、ログを見る限り無駄にwp-cron.phpが起動されている、という印象にもなります。

サイト閲覧ごとのwp-cron.phpの起動を防ぐには設定ファイル
wp-config.phpファイル(デフォルトでは  /home/kusanagi/excloud/DocumentRoot/wp-config.php )を編集し
データベース項目の後に、「define(‘DISABLE_WP_CRON’, ‘true’);」の行を追加します。

その後、(たとえば)15分おきに wp-cron.php を起動し予約投稿をチェックするよう、crontab等に設定を追加します。

1.wp-config.phpの変更

変更前

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

変更後

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

define('DISABLE_WP_CRON', 'true');

2.crontabの追加

crontabをコマンドラインで操作いただくという方法もありますが、以下では「/etc/crontab」で編集する例を紹介します。

/etc/crontab については SSHにログインしrootに昇格してvi等のテキストエディタで編集するか、コントロールパネルのファイルマネージャで編集可能です。(ファイルマネージャの編集については後述します)

変更前(デフォルトでは何もコマンド行は書かれていません)

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

変更後(最後の一行が該当コマンドです)

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

*/15 * * * * kusanagi  /usr/bin/php -q /home/kusanagi/excloud/DocumentRoot/wp-cron.php >/dev/null 2>&1

ファイルマネージャの編集について

  • 1.コントロールパネル(https://hspc.flxsrv.jp/cp)にログイン、上部プルダウンで対象のホスティング契約を選択
  • 2.「システム」タブを開く
  • 3.「ファイルマネージャ」をクリック
  • 4.「/etc/crontab」を編集する場合、「etc」を順にクリックし、作業ディレクトリに移動
  • 5.「crontab」の左のチェックボックスにチェックをいれ、「編集」をクリック
    編集画面で変更後、「OK」をクリック