KUSANAGIでwp-cron.phpを停止してOSで制御することでパフォーマンスとセキュリティの改善を図る【KUSANAGI9対応・初心者向け】

cronは、あるコマンドを設定したスケジュール(時間)に従って実行してくれるコマンドです。
ざっくり言うと、

タイマーだよ

cronにはWordPress上で動くWP-cronとUNIX系OSのcronがあります。
KUSANAGIのCentOSもUNIX系OSの一つであり、後者のcronが積まれています。
(以下、KUSANAGIのcronは単にcronとします)

WP-cronは予約投稿やプラグインの自動更新に使われる便利な機能です。
しかし一方で、サイトアクセスがある毎に作動するためパフォーマンスに悪影響を及ぼします。
また、
サイト攻撃で狙われやすい対象でもあります。
よって対策しておくに越したことはありません。

本稿ではKUSANAGIでWp-cronを停止してパフォーマンスとセキュリティの改善を図ります。

天満川鈴 WRITTEN BY 天満川鈴

wp-cron.phpを停止する

wp-config.phpに次の記述をします。

define('DISABLE_WP_CRON', 'true');

試しに投稿予約をしてテスト投稿してみてください。
時間が過ぎても予約投稿が失敗しているはずです。

crontabを編集してwp-cron.phpを定期的に叩く

しかしこのままでは投稿予約その他ができなくなってしまいます。
この点、

予約した時間が過ぎてしまっていても、wp-cron.phpを動かせばその時点でタスクが実行されます

なのでOSのcronを利用してwp-cron.phpを定期実行します。
具体的にはcrontabを編集します。

ターミナルにログイン。
次のコマンドを入力します。

# crontab -e

編集画面が開きます。
KUSANAGIの場合、恐らく次の記述がされていると思います。

07 03 * * 0 /opt/kusanagi/bin/kusanagi update cert

この下に次の記述を追加します。

*/10 * * * * /usr/local/bin/php -q /home/kusanagi/【プロファイル名】/DocumentRoot/wp-cron.php > /dev/null 2>&1

以下、最小限必要な説明のみさせていただきます。

「*/10」は「10分ごと」の意味です。
ここを「10」にすると「毎時10分」になります。

御自身の用途に応じて変更してください。
今回の目的ですと左端と左から2番目までしか使わないでしょうから説明はそこまでにとどめます。
設定できる数字はそれぞれ「0-59」と「0-23」です。

crontabにはユーザー名オプションもありますが今回は不要です。

/dev/null 2>&1

これはログ出力。
エラー出力を標準出力ファイルにマージします(まとめます)。

編集画面を閉じてcronを再起動します。

systemctl restart crond.service

今回設定したファイルは次の場所にあります。

/var/spool/cron

cronの動作確認・テスト

予約投稿テスト

テスト投稿を作成します。
適当に投稿予約の設定をして、cronで設定した間隔の時間がすぎるまで待ちます。

(例)10分おきに設定した場合
13時12分に記事を書く
→13時15分に投稿予約
→13時18分に予約失敗しているのを確認
→13時22分に「公開済み」になっているのを確認

ログの確認

ログからcronが動いているか確認します。

less +F /var/log/cron

動いていれば設定した時刻に「CMD」「CMDEND」が表示されています。

「less +F」はログを見るコマンド。
もっと知りたければこちらを御覧ください。

参考記事

【CentOS7】cronの設定方法

cron の設定とか簡易メモ

【Ubuntu】cronでsudoを実行するにはどうすれば。

まとめ

めんどくさい……

でもKUSANAGI使うのはパフォーマンス求めてのはず
だったらやれることはやった方がいいと思うわ

 

天満川 鈴のプロフィール画像
WRITTEN BY

天満川 鈴

未経験からWEB業界に入り、現在はWEBディレクターとして実務に従事。 要件整理・導線設計・コンテンツ構成などを学びながら、日々改善を重ねています。 AIを活用したコンテンツ制作・効率化を強みとし、プロンプト設計を含めた制作フローの最適化にも取り組んでいます。
本サイトでは、WordPressやサイト制作に関する試行錯誤・検証内容を中心に発信。 技術検証の一環として、KUSANAGI公式サイトにて記事を2回紹介いただきました。

RECOMMENDED INFRASTRUCTURE

私はConoHa以外を勧めない。

2016年からずっとConoHaを使い倒してきました。知人に「一番いいサーバーは?」と聞かれたら、迷わずここを教えます。

レンタルサーバーナンバーワンを誇る高速環境であることはもちろん。私が「黒い画面って何?」というド素人からサイト制作のプロになれたのは、傍らにずっとこのはちゃんがいてくれたから。
私がConoHaを使い続ける、嘘偽りない理由です。

※ConoHaに初めて入会の方限定。
本CTAの画像もしくはボタンを押してWINGパック12か月以上を契約すると、最大5000円割引してもらえます。

公式サイトで詳細を見る
× 閉じる