さくらのレンタルサーバーで運用しているWordPressのWP-CRONを停止する
投稿日:2018年03月07日
最終更新日:
もくじ
- WEBサイトにアクセスが有ったときのWP-CRONの実行を停止する
- CRONを使用して定期的にwp-cron.phpを実行する
WEBサイトにアクセスが有ったときのWP-CRONの実行を停止する
WEBサイトにアクセスが有ったときののWP-CRONの実行を停止するために、wp-config.phpに以下の1行を追記しましょう。 [PHP] define(‘DISABLE_WP_CRON’, ‘true’); [/PHP]
追記する場所は define(‘DB_COLLATE’, ”); の後ろあたりで良いと思います。ただ、WP-CRONの実行を停止することでサーバーの負荷を軽減することはできますが、この操作を行うことでWP-CRONに依存する処理(記事の自動投稿など)が停止してしまうので、サーバーのCRONを使用して定期的(1~2時間に1回程度)にwp-cron.phpを実行する必要があります。
CRONを使用して定期的にwp-cron.phpを実行する
さくらのレンタルサーバ ではスタンダードプラン以上でCRONを使用することができます(WordPressの導入が可能なのもスタンダードプラン以上です)。というわけで、サーバーのCRONを使用してwp-cron.phpを実行するようにしましょう。
サーバーのCRONを使用してwp-cron.phpを実行出来るようにするためには、実行対象となるwp-cron.phpの絶対パスを把握する必要があります。wp-cron.phpの絶対パスは、WordPressを /home/hoge/www/wordpress (hogeはサーバーのユーザー名) にインストールしていると仮定すると /home/hoge/www/wordpress/wp-cron.php となります(WordPressをインストールしたディレクトリ…wp-adminディレクトリがあるところと同じ階層にあるはずです)。
余談ですが、WinSCPを使用している場合は、wp-cron.phpを右クリック→ファイル名→クリップボードにコピー(パスを含む)を選択すれば、一発でwp-cron.phpの絶対パスがクリップボードにコピーされます。
wp-cron.phpの絶対パスを確認したら、さくらインターネットの会員メニューにログインしてサーバコントロールパネルにアクセスし、「アプリケーションの設定」→「CRONの設定」にアクセスしましょう。その後、「新規項目の追加」を選択します。(後からCRON設定を変更/削除する場合は、上画像の画面で変更/削除したい実行コマンドをクリックしましょう。)
「実行コマンド」欄には、以下の文字列を入力します。
[VIM]
/usr/local/bin/php-cgi (実行対象となるwp-cron.phpの絶対パス) 1> /dev/null
#例
/usr/local/bin/php-cgi /home/hoge/www/wordpress/wp-cron.php 1> /dev/null
[/VIM]
実行日時については、
- 毎日1時間毎に実行させる場合は、「月」「日」「時」を全て *(アスタリスク) で埋め、「分」では毎時何分に実行させるかを指定しましょう。「曜日」はすべての曜日のチェックボックスをオンにしましょう。
- 毎日2時間毎に実行させる場合は、「月」「日」を全て *(アスタリスク) で埋め、「時」は */2 と書いてください。「分」では毎時何分に実行させるかを指定しましょう。「曜日」はすべての曜日のチェックボックスをオンにしましょう。
- 実行させたくない曜日がある場合は、その曜日のチェックボックスをオフにすればOKです。また、「毎日◯時◯分ジャストに1回だけ実行させたい」等の場合は、その時間を直接指定してもOKです。
コメントは書いても書かなくても大丈夫ですが、書くなら自分がわかるように書きましょう。設定し終えたら「送信」ボタンを押しましょう。
これで一連の設定は完了です。なお、上記のコマンドでwp-cron.phpを実行させる場合は、wp-cron.phpのパーミッションを変更する(実行権限を付与する)必要はありません。