コマンドラインからWordPressを操作するwp-cliネタ、たびたびです。今回はWordPressのプラグイン操作(確認、アップデート、インストール、アンインストール)をやってみたいと思います。そして最後にShellshock診断もやってみます。
■ WordPressプラグイン一覧確認
プラグインの一覧は「wp plugin list」で確認できます。それでは見てみましょう。
$ wp plugin list +-----------------------------------+--------+-----------+---------+ | name | status | update | version | +-----------------------------------+--------+-----------+---------+ | ewww-image-optimizer | active | available | 2.1.2 | | wp-multibyte-patch | active | none | 2.2 | +-----------------------------------+--------+-----------+---------+
name列ですが、これはブラウザで見る名前とは違い、いわゆるスラッグとなっています。status列はactiveかinactiveかを表しています。上記の例では、ewww-image-optimizerのupdate列がavailableになっているので、アップデートしましょう。
$ wp plugin update ewww-image-optimizer Success: Updated 1/1 plugins. メンテナンスモードを有効にします… https://downloads.wordpress.org/plugin/ewww-image-optimizer.2.2.0.zip から更新をダウンロードしています... 更新を展開しています… 最新のバージョンをインストールしています… プラグインの古いバージョンを削除しています… プラグインの更新に成功しました。 メンテナンスモードを無効にします…
それでは再確認しましょう。ewww-image-optimizerのバージョンが2.1.2から2.2.0になり、update列もnoneになりました。
$ wp plugin list +-----------------------------------+--------+--------+---------+ | name | status | update | version | +-----------------------------------+--------+--------+---------+ | ewww-image-optimizer | active | none | 2.2.0 | | wp-multibyte-patch | active | none | 2.2 | +-----------------------------------+--------+--------+---------+
複数のプラグインを一撃でアップデートしたい場合、引数に「--all」を指定すればOKです。
$ wp plugin update --all Using cached file '/home/nullpopopo/.wp-cli/cache/plugin/ewww-image-optimizer-2.2.0.zip'... Success: Updated 1/1 plugins. メンテナンスモードを有効にします… https://downloads.wordpress.org/plugin/ewww-image-optimizer.2.2.0.zip から更新をダウンロードしています... 更新を展開しています… 最新のバージョンをインストールしています… プラグインの古いバージョンを削除しています… プラグインの更新に成功しました。 メンテナンスモードを無効にします…
■ 公開されているWordPressプラグインを検索する
wp-cliは、WordPressのPlugin Directoryにあるプラグインを検索することができます。試しに「shell」をキーワードに検索してみましょう。
$ wp plugin search shell Success: Showing 10 of 66 plugins. +---------------------------------------------+---------------------------+--------+ | name | slug | rating | +---------------------------------------------+---------------------------+--------+ | Enlighter - Customizable Syntax Highlighter | enlighter | 87.6 | | Shellshock Check | shellshock-check | 100 | | Crayon Syntax Highlighter | crayon-syntax-highlighter | 95.8 | | xfile | xfile | 84 | | Wordfence Security | wordfence | 97.4 | | WP-DBManager | wp-dbmanager | 80 | | FeedWordPress | feedwordpress | 74.4 | | NinjaFirewall (WP edition) | ninjafirewall | 96.8 | | SimpleSecure | simplesecure | 88.8 | | SitePush | sitepush | 100 | +---------------------------------------------+---------------------------+--------+
デフォルトでは多数プラグインがあっても10個しか表示してくれません。多数検索したい場合は「--per-page」で1ページあたりの表示件数を指定します。
$ wp plugin search shell --per-page=66 Success: Showing 64 of 66 plugins. +---------------------------------------------+--------------------------------------+--------+ | name | slug | rating | +---------------------------------------------+--------------------------------------+--------+ | Enlighter - Customizable Syntax Highlighter | enlighter | 87.6 | | Shellshock Check | shellshock-check | 100 | (略) +---------------------------------------------+--------------------------------------+--------+
それでは今回、Shellshock Checkプラグインをインストールしてみることにします。
$ wp plugin install "Shellshock Check" Installing Shellshock Check (1.1.0) https://downloads.wordpress.org/plugin/shellshock-check.zip からインストールパッケージをダウンロードしています… パッケージを展開しています… プラグインをインストールしています… プラグインのインストールが完了しました。
プラグインのインストールは、引数に「name」列ではなく「slug」列を指定してもOKです。
$ wp plugin install shellshock-check Installing Shellshock Check (1.1.0) https://downloads.wordpress.org/plugin/shellshock-check.zip からインストールパッケージをダウンロードしています… パッケージを展開しています… プラグインをインストールしています… プラグインのインストールが完了しました。
インストールしたプラグインはアクティブ化されていないので、確認の後アクティベートします。
$ wp plugin list | egrep '^(name|shellshock-check)' name status update version shellshock-check inactive none 1.1.0
$ wp plugin activate shellshock-check Success: Plugin 'shellshock-check' activated.
$ wp plugin list | egrep '^(name|shellshock-check)' name status update version shellshock-check active none 1.1.0
なお、プラグインインストールと同時にアクティブ化したい場合は、「wp plugin install プラグイン名 --activate」で行います。
プラグインを無効化する場合は、deactiveサブコマンドを使用します。
$ wp plugin deactivate shellshock-check Success: Plugin 'shellshock-check' deactivated.
$ wp plugin list | egrep '^(name|shellshock-check)' name status update version shellshock-check inactive none 1.1.0
プラグインの詳細を確認するには、statusサブコマンドを使います。
$ wp plugin status shellshock-check Plugin shellshock-check details: Name: Shellshock Vulnerability Check Status: Active Version: 1.1.0 Author: ManageWP Description: Test if the server is affected by the Shellshock vulnerability.
プラグインを削除するにはdeleteサブコマンドを使います。
$ wp plugin delete shellshock-check Success: Deleted 'shellshock-check' plugin.
$ wp plugin list | egrep '^(name|shellshock-check)' name status update version
■ Shellshock診断
それでは、せっかくインストールしたshellshock-checkを使って、シェルショック診断をしてみましょう。(上記で削除した後に再インストールしています)
設定 -> Shellshock の順にクリックします。
何もないことを祈りながら「Run test」をクリックしましょう。
「おめでとうございます。サーバーは脆弱じゃないっす。」と表示されました。めでたしめでたし。
[amazonjs asin="B00N4M5U8I" locale="JP" title="プロフェショナル・シェルプログラミング (アスキー書籍)"]