WP-CLIを使ってAMIMOTO上のWordPressをリモートメンテナンス

WP-CLIアドベントカレンダーの1日目です。

今日は、WP-CLIをSSH経由で実行して、AMIMOTO上のWordPressのメンテナンスを一発で終わらせる便利なコマンドをいくつか紹介します。

http://ja.amimoto-ami.com/

これから紹介するコマンドは、SSHの接続先をuser@example.comにしていますので、その部分だけ皆さんの環境にあわせてください。

あと$()の前にエスケープ\が入っていますが、これはそのままコピペしてください!

AMIMOTOのドキュメントルートを一発で取得する方法について

AMIMOTOはデフォルトで、インスタンスIDをドキュメントルートディレクトリのパスに使用しています。

そのため、インスタンスIDを取得する必要がありますが、これはEC2上で以下のコマンドを使用すれば一発で取得できます。

$ curl http://169.254.169.254/latest/meta-data/instance-id

WP-CLIにドキュメントルートを教えてあげる

WP-CLIはWordPress本体をrequireして動作する仕組みなので、ドキュメントルート外からwpコマンドを実行するには、以下のように--pathという引数でドキュメントルートを教えてあげる必要があります。

$ wp --path=/var/www/vhosts/\$\(curl http://169.254.169.254/latest/meta-data/instance-id\) --info

リモートからSSH経由で実行するには以下のような感じ。

$ ssh user@example.com wp --path=/var/www/vhosts/\$\(curl http://169.254.169.254/latest/meta-data/instance-id\) --info

以上を組み合わせることでリモートからコマンド一発でWordPressをメンテナンスすることができます。

WordPressのアップデート

WordPress本体をアップデートするには以下のコマンドを実行してください。

$ ssh user@example.com wp --path=/var/www/vhosts/\$\(curl http://169.254.169.254/latest/meta-data/instance-id\) core update

バージョンを指定してアップデートすることもできます。

$ ssh user@example.com wp --path=/var/www/vhosts/\$\(curl http://169.254.169.254/latest/meta-data/instance-id\) core update --version=4.1-beta1

ダウングレードもできるんだぜ。

$ ssh user@example.com wp --path=/var/www/vhosts/\$\(curl http://169.254.169.254/latest/meta-data/instance-id\) core update --version=4.0.1 --force

プラグインのアップデート

インストールされているプラグインをまとめてアップデートしたい場合には以下のコマンドを実行してください。

$ ssh user@example.com wp --path=/var/www/vhosts/\$\(curl http://169.254.169.254/latest/meta-data/instance-id\) plugin update --all

特定のプラグインだけアップデートするには以下のような感じで。

$ ssh user@example.com wp --path=/var/www/vhosts/\$\(curl http://169.254.169.254/latest/meta-data/instance-id\) plugin update wp-total-hacks

ちなみにインストールされているプラグインは以下のコマンドで確認できます。

$ ssh user@example.com wp --path=/var/www/vhosts/\$\(curl http://169.254.169.254/latest/meta-data/instance-id\) plugin list

テーマのアップデート

テーマの場合は上述のプラグインとほぼ同じです。pluginの部分をthemeに置き換えてください。

$ ssh user@example.com wp --path=/var/www/vhosts/\$\(curl http://169.254.169.254/latest/meta-data/instance-id\) theme update --all

以上のようにWP-CLIを使うとサイトのメンテナンスが簡単にできます。

また、この応用でメンテナンスの自動化なども可能なので、ぜひいろいろ試してみてください。

 

明日は @gatespace_k さんです!