[wp-cli]コマンドラインでWordPressのプラグインを操作する – ShellShock診断もするよ!


コマンドラインから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を使って、シェルショック診断をしてみましょう。(上記で削除した後に再インストールしています)

wordpress_plugin_shellshock-check_001

設定 -> Shellshock の順にクリックします。

wordpress_plugin_shellshock-check_002

何もないことを祈りながら「Run test」をクリックしましょう。

wordpress_plugin_shellshock-check_003

「おめでとうございます。サーバーは脆弱じゃないっす。」と表示されました。めでたしめでたし。

[amazonjs asin="B00N4M5U8I" locale="JP" title="プロフェショナル・シェルプログラミング (アスキー書籍)"]