複数のWordPressサイトをWP-Cliで一気にアップデートする方法。

スポンサーリンク


Wordpressで複数のサイトを運用してるとこういうニュースはブルーですね。
【セキュリティ ニュース】「WPTouch」など多数のWordPressプラグインに脆弱性(1ページ目 / 全1ページ):Security NEXT
そういう時のために一気にアップデートする方法です。

WP-Cliを使う

wp-cliという、コマンドラインでWordpressを操作できるファイルをインストールします。
Command line interface for WordPress | WP-CLI
このサイトからwp-cli.pharというファイルをダウンロード。
https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

このファイルがまんまコマンドラインで叩くものなので、wpなどに名前を変えて/usr/local/bin/などに入れます。
mv wp-cli.phar wp
mv wp /usr/local/bin/

これで準備は整いました。

スポンサーリンク

wp-cliの使い方

さて、このwpですが、使い方はWordperssのインストールディレクトリに移動して、
wp {対象} {処理}
が基本的な使い方です。使うのにrootが必要です。
インストールディレクトリに移動シない場合はwp –path=/www/wordperss…のように指定します。

例えば、プラグインで今回セキュリティ問題があるとされるWPTouchのアップデートを行うのであれば、
# wp plugin wptouch update
となります。
またWordpress自体のアップデートは
# wp core update
で出来ます。が、注意しないと最新が英語版の時に英語版でアップデートしちゃったりするので注意。

WordPressのディレクトリ一覧を作る

さて、対象のWordpressをアップデートしていくわけですが、同じサーバにWordpressを何個もインストールしているといちいち移動するのが面倒です。
なので、
# locate wp-config.php > ./wplist
とかやると、wplistの中には
/www/a.wordpress/htdocs/wp-config.php
/www/b.wordpress/htdocs/wp-config.php
/www/c.wordpress/htdocs/wp-config.php
とかになるはずです。
これを利用してシェルスクリプトにしちゃいましょう。

全Wordpressサイトのプラグイン全更新

今回のようなセキュリティアップデートの場合、とりあえず全部のプラグインのアップデートをしちゃいたいので、それが出来るように例のwplistを正規表現で変換していきます。
例はvimのコマンドです。

% s/^/cd /g
「行頭をcd(スペース)に置換」
% s/wp-config.php/;wp plugin update --all/g
「wp-config.phpを;wp plugin update -allに置換」
これで例えば1行目であれば、
cd /www/a.wordpress/htdocs/; wp plugin update --all
に変わります。最後のupdate –allは、全プラグインをアップデートする、というオプションです。

これで
# sh wplist
で、ずぃーーーっとプラグイン更新が始まります。

どのサイトのアップデートかチェックする

さて、ズラズラとこういうメッセージがアップデートされる度に表示されます。
Updating to version 4.2 (ja)...
Using cached file '/root/.wp-cli/cache/core/ja-4.2.tar.gz'...
更新を展開しています…
Success: WordPress updated successfully.

(これはcoreの更新)

ですが、どのサイトを今処理してるのかが今ひとつわかりづらいので、先ほどのwplistにまた置換をかけます。

% s/; wp/; pwd; wp/g
これで各行はこうなります。
cd /www/a.wordpress/htdocs/; pwd; wp plugin update --all
これで、cdした後のディレクトリを出力してからアップデートをしていくのでわかりやすくなります。

wp –path=/www/a.wordpress・・・という置換の仕方もありますが、/のエスケープをしまくらないといけないので、こっちの方がパパパッと出来て楽ちんです。

スポンサーリンク