エックスサーバーのレンタルサーバーで遊ぶ その3: WP-CLIを使う

レンタルサーバーの導入と設定
スポンサーリンク

前回は、mixhostからエックスサーバーにWordPressサイトを移転した後の微調整を紹介しました。

今回はWordPressをコマンドラインから管理するための「WP-CLI」というツールをエックスサーバーで利用したいと思います。

スポンサーリンク

WP-CLIとは

WP-CLIとはWordPressをコマンドラインから管理するためのコマンドです。公式サイトは下記になります。うれしいことに公式サイトは日本語に対応していていました。

Command line interface for WordPress | WP-CLI

WP-CLIを使ってできることは多岐にわたります。WP-CLIのコマンドについては下記にまとまっています。

WP-CLI Commands | Developer.WordPress.org
Documentation for all currently available WP-CLI commands, including usage and subcommands.

私がWP-CLIを使って便利だと思ったのが、コマンドラインを使って記事をポストできると言うことです。

シェルスクリプトと組み合わせたりすれば、自動的に記事を更新することもできたりします。

実は、mixhostでWordPressを運用している頃はWP-CLIを使って記事の更新をしていました。

mixhostのレンタルサーバーで遊ぶ その8: WP-CLIを導入する
今回はmixhostのレンタルサーバーにWP-CLIというツールを導入してみます。WP-CLIはPHPで動作するスクリプトなのでユーザ権限で簡単にインストールすることができます。このWP-CLIを使うとコマンドラインでWordPressのコンテンツなどを変更できるので、自動制御などを考えている方にはお勧めのツールです。

そのためmixhostからエックスサーバー引っ越した後でもWP-CLIを使いたいところです。

スポンサーリンク

WP-CLIを使う前の準備

WP-CLIはコマンドラインのツールなので、エックスサーバーのレンタルサーバーにSSH接続して作業する必要があります。

SSHでの接続方法については公式サイトで案内があるので参照してみてください。

SSH設定 | レンタルサーバーならエックスサーバー
レンタルサーバー「エックスサーバー」のご利用マニュアル|エックスサーバーではSSH接続機能を提供しています。当マニュアルではお客様のサーバーアカウントへSSHで接続するための手順を記載しています。

エックスサーバの状況

以降の操作はSSHで接続して行います

エックスサーバーではWP-CLIはwpという名前で導入済だったりします。

$ which wp
/usr/bin/wp
$ wp --version
WP-CLI 2.4.0

ちょっとバージョンが古いですが、すぐに使えるのはありがたい限りです。

この記事作成時点ではWP-CLIは2.7.1が最新になっています。

このバージョンを使いたい場合は自分でインストールする必要があります。

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ mkdir -p bin
$ chmod +x wp-cli.phar
$ mv wp-cli.phar bin/wp

今回の記事は最新版のWP-CLIは導入せずに、エックスサーバーに最初から入っていたWP-CLI 2.4.0を利用します。

WP-CLIを使うための設定

まずWP-CLI自身の情報を表示してみましょう。

$ wp --info
OS:     Linux sv14573.xserver.jp 5.4.0-147-generic #164~18.04.1-Ubuntu SMP Tue Apr 4 00:20:20 UTC 2023 x86_64
Shell:  /bin/bash
PHP binary:     /usr/bin/php
PHP version:    5.4.16
php.ini used:   /etc/php.ini
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /home/ユーザ名
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.4.0

ここで注意したいのは「PHP version」の部分です。この結果を見るとWP-CLIは「PHP 5.4.16」を使って動作しています。

一方、WordPressの「WP-ServerInfoプラグイン」で確認すると、WordPressは「PHP 7.4.33」で動作しています。

WP-ServerInfo

エックスサーバーのWordPressで使用するPHPのバージョンは、サーバーパネルの「PHP Ver 切替」で設定することができます。

サーバーパネル

現在のPHPのバージョンもここから確認することができます。

PHPのバージョン

WP-CLIで使うPHPのバージョンと、WordPressで使っているPHPのバージョンは一致させておいた方が無難です。

WP-CLIを特定のPHP上で動作させたい場合は、PHPコマンドの引数としてWP-CLIを実行すればOKです。

まずPHPのコマンドを「–verion」オプションを使って特定しましょう。

$ php7.4 --version
PHP 7.4.33 (cli) (built: Nov  1 2022 16:31:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

「php7.4」というコマンドが「PHP 7.4.33」に対応していることが確認できました。

基本的にPHP x.y.zは、「phpx.y」というコマンドに対応しているようです。

あとはこのphp7.4の引数としてWP-CLIを実行してみましょう。

$ php7.4 /usr/bin/wp --info
OS:     Linux 5.4.0-147-generic #164~18.04.1-Ubuntu SMP Tue Apr 4 00:20:20 UTC 2023 x86_64
Shell:  /bin/bash
PHP binary:     /opt/php-7.4.33/bin/php
PHP version:    7.4.33
php.ini used:   /opt/php-7.4.33/etc/php.ini
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /home/ホームディレクトリ
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.4.0

ちゃんと「PHP version」が「7.4.33」になっていることがわかると思います。

毎回、phpのコマンドを指定するのが面倒なので、「wp」で「php7.4 /usr/bin/wp」が実行されるようにエイリアスの設定をしておきましょう。

$ echo -e "\nalias wp='php7.4 /usr/bin/wp'" >> .bash_profile
$ source .bash_profile

ついでに補完をするための設定をしておきましょう。後はWP-CLIでタブ補完をできるように設定ファイルを取得します。

$ curl -O https://raw.githubusercontent.com/wp-cli/wp-cli/v2.4.0/utils/wp-completion.bash
$ mkdir -p etc
$ mv wp-completion.bash etc

そして「.bash_profile」の末尾でこのファイルを読み込むようにします。

$ echo -e "\nsource ~/etc/wp-completion.bash" >> .bash_profile

あとは.bash_profileを再読込してこの設定を有効にします。

$ source .bash_profile

この設定が有効になれば「wp 」と入力してからTABキーを押すと利用可能なコマンドが表示(補完)されます。

$ wp <タブキー>
cache              db                 import             package            search-replace     term
cap                embed              language           plugin             server             theme
cli                eval               maintenance-mode   post               shell              transient
comment            eval-file          media              post-type          sidebar            user
config             export             menu               rewrite            site               widget
core               help               network            role               super-admin
cron               i18n               option             scaffold           taxonomy

WP-CLIを使って見る

エックスサーバーの「WordPress簡単インストール」でWordPressをセットアップすると、ホームディレクトリにあるドメイン名(ホスト名)のディレクトリ内のpublic_htmlディレクトリにWordPressがインストールされています。

インストールされているWordPressには「Hello world」というタイトルの記事があるはずです。

WordPress簡単インストール直後

テーマにはCocoonを使っています。

この記事の内容をWP-CLIを使って確認してみましょう。この記事はID=1なので、ID=1の内容をwp postコマンドでチェックしてみます。

$ wp post get --path=$HOME/ドメイン名/public_html 1
+-----------------------+------------------------------------------------------+
| Field                 | Value                                                |
+-----------------------+------------------------------------------------------+
| ID                    | 1                                                    |
| post_author           | 1                                                    |
| post_date             | 2023-05-23 23:19:59                                  |
| post_date_gmt         | 2023-05-23 23:19:59                                  |
| post_content          | <!-- wp:paragraph --> <p>WordPress へようこそ。こち  |
|                       | らは最初の投稿です。編集または削除し、コンテンツ作成 |
|                       | を始めてください。</p> <!-- /wp:paragraph -->        |
| post_title            | Hello world!                                         |
| post_excerpt          |                                                      |
| post_status           | publish                                              |
| comment_status        | open                                                 |
| ping_status           | open                                                 |
| post_password         |                                                      |
| post_name             | hello-world                                          |
| to_ping               |                                                      |
| pinged                |                                                      |
| post_modified         | 2023-05-23 23:19:59                                  |
| post_modified_gmt     | 2023-05-23 23:19:59                                  |
| post_content_filtered |                                                      |
| post_parent           | 0                                                    |
| guid                  | http://ドメイン名/                                   |
| menu_order            | 0                                                    |
| post_type             | post                                                 |
| post_mime_type        |                                                      |
| comment_count         | 1                                                    |
+-----------------------+------------------------------------------------------+

さらに「–field」というオプションを使うと特定のフィールドだけ取り出すことができます。この記事のタイトルを取り出す場合は次のようになります。

$ wp post get --path=$HOME/ドメイン名/public_html 1 --field=post_title
Hello world!

次に新しい記事を投稿してみましょう。

$ wp post create --path=$HOME/ドメイン名/public_html --post_title='Hello WP-CLI!' --post_content='<p>WP-CLIを使った記事の投稿のテストです。</p>' --post_status=publish
Success: Created post 4.

その後、ブラウザで見てみると新しい記事が追加されていることがわかると思います。

WP-CLIで記事を追加した後

まとめ

今回はエックスサーバーのレンタルサーバーでWP-CLIというツールを利用してみました。

エックスサーバーはデフォルトでWP-CLIがインストールされており、すぐに使うことができますが、WordPressで利用しているPHPのバージョンに合わせるのがオススメです。このWP-CLIを使うとコマンドラインでWordPressのコンテンツなどを変更できるので、自動制御などを考えている方には便利なツールと思います。

次回はエックサーバーにPerlモジュールを追加してみます。

コメント

タイトルとURLをコピーしました