本稿ではKUSANAGIでWP-CLIとcronを使ってデーターベース最適化を自動化する方法について記します。
WP-CLIはKUSANAGIに予め入っています。
非常に便利なので使わない手はありません。
さらにOSのcronと組み合わせることでスケジュールに従った自動化が可能になります。
その帰結として、

wp-optimizeなどデータベース管理プラグインを外すことができます
なお、KUSANAGI9のバージョン9.6.1-1で動作確認しています。
WP-CLIについて
WP-CLIとは?
WP-CLIは、

ざっくり言うと、超便利なコマンドラインツールです
コマンドライン一覧を見ればわかりますが色々なことができます。
「KUSANAGI MAGAZINE」でもコラムで採り上げられています。
もっと詳しく知りたい方は読んでみてください。
WP-CLIの一般的な使い方
WP-CLIを動かすには、WordPressをインストールしているフォルダへ移動する必要があります。
$ cd /home/kusanagi/(プロファイル名)/DocumentRoot
移動したらコマンドを叩けばOKです。
CRONについて
cronは、あるコマンドを設定したスケジュール(時間)に従って実行してくれるコマンドです。

ざっくり言うとタイマーです
CRONにはWordPress上で動くWP-cronとUNIX系OSのcronがあります。
KUSANAGIのCentOSやAlmaLinuxもUNIX系OSの一つであり、後者のcronが積まれています。
ここで用いるのは後者。
以下、単に「cron」と呼びます。
前者のWP-cronは記事の投稿予約などで使われます。
ただサーバー負荷やセキュリティ上の問題もあることから、使わないなら機能を止めてしまうこともあります。
WP-CLIとcronを使った自動データベース最適化
WP-CLIのデータベース最適化コマンド
WP-CLIにはデータベース最適化コマンドがあります。
wp db optimize
これをcronに登録することで自動化します。
シェルスクリプトの作成
wpoptimize.shというシェルスクリプトを作ります。
(拡張子さえ.shなら名前は任意)
中身に次の記述をします。(KUSANAGI9の場合)
#!/bin/sh cd /home/kusanagi/(プロファイル名)/DocumentRoot /usr/local/bin/php /opt/kusanagi/bin/wp db optimize --allow-root
KUSANAGI8の場合はwpファイルの場所が異なります。
/usr/local/bin/wp
シェルスクリプトをサーバーにアップします。
どこでもいいのですが、ここではプロファイルの下にSHフォルダを作り、その直下にアップロードします。
/home/kusanagi/(プロファイル名)/sh
アップしたら実行権(x)を与えます。
パーミッションを755に設定してください。
シェルスクリプトが動作するかチェックします。
ファイル名がwpoptimize.shの例です。
# /home/kusanagi/(プロファイル名)/sh/wpoptimize.sh
動けば結果が滝のように表示されるのでわかります。
動かない場合は実行権を与え忘れているか記述ミスの可能性が高いです。
cronに設定する
次のコマンドを打ち込みます。
# crontab -e
編集画面が開きますので、次の記述を追加します。
ファイル名がwpoptimize.shの例です。
1 15 * * * (シェルスクリプトのパス)/wpoptimize.sh >>/home/kusanagi/(プロファイル名)/DocumentRoot/wp-content/uploads/wpotimize.log 2>&1
シェルスクリプトのパスは、本稿に従った場合は以下です。
/home/kusanagi/(プロファイル名)/sh
以下、最小限必要な説明のみさせていただきます。

1 15 * * *は「毎日15時1分にデータベース最適化を実行する」です
自分に合わせて調整してください。
残りの*(アスタリスク)は「日・月・曜日」です。
wpotimize.log 2>&1
これはエラー出力も標準出力ファイルにまとめて出力するという意味。
変更の必要はありません。
動作テスト
とりあえず10分後くらいに設定してみて動くかテストします。
ログに結果が吐き出されていればOKです。
注意点として、ログを見た時、次の記述に驚くかもしれません。
Table does not support optimize, doing recreate + analyze instead
エラーじゃありません。
ちゃんと最適化されてるから大丈夫です。
動かない場合はログファイルをチェックしてみてください。
# less +F /var/log/cron
手掛かりが掴めるかもしれません。
パーミッションエラーが出ている場合は「kusanagi、www、wheel」の各グループに属する作業ユーザーを作ってみてください。
WAFを設定している場合は切ってみてください。
備考 環境による違い
私の環境はKUSANAGI9、WEXAL(PST3.x)、ConoHa VPSです(記事執筆当時)。
それ以外ですと、本稿の記述で動くとは限りません。
もし間違いなく記述も設定も正しいのに動かない場合。
自分と似た環境の方の記事を探して、他の記述を試してみてください。
まとめ

WP-CLIの他の使い方も、今後紹介していくつもりです!
VPSは、もう「黒い画面」だけじゃない。
「VPSは難しそう」と諦めていませんか? ConoHaのKUSANAGIなら、ブラウザ上の管理画面(KUSANAGI Manager)で、ドメイン設定からSSL発行まで直感的に操作可能です。
コマンド操作なしで世界最速級の環境を構築できる、今の時代の初心者にとっての最適解。私が長年愛用している理由がここにあります。
※当サイト経由で新規申し込みいただくと、特典として1000円分のクーポンをもらえます。
