SEOとして、WordPressにおける低品質コンテンツ(記事)を一括「非公開」(下書きに戻す)という作業をすることになりました。対象のサイトは大規模サイトであり、下記のような状態でした。
- 非公開対象とする予定の記事が500記事ほどあり、手動で更新させるとなかなか大変。
- また、対象記事についてはタイトルと記事URLが分かっている状態。
そこで、wp-cliというコマンドラインでWordPressの管理を操作できる公式ツールを用いて、記事の一括非公開を行なうことにしました。
本記事では wp-cliでWordPress大量の投稿記事を一括非公開にする方法 の前段階として、「エックスサーバーにwp-cliをインストールする方法」を解説しています。
目次:
- エックスサーバーにSSHで接続する
- エックスサーバーの領域内にwp-cliをインストール
- binフォルダを作成
- wp-cliが実行しているPHPバージョンを確認する
- wp-cliを実行するも、PHPバージョンエラー
- エックスサーバーのコマンドライン上で参照されるPHPは管理画面のものとバージョンが異なる
- エックスサーバーにインストールされているPHPバージョンを確認
- wp-cliが利用しているPHPバージョンを確認する
- wp-cliが実行するPHPバージョンを切り替えて実行する
- ファイルを直接指定して、一時的にwp-cliコマンドでのPHPバージョンを変更する
- .bashrcにエイリアスを記述して、自動的にPHPバージョンを指定して実行
- 成果をだすWebサイト制作、企画・戦略から伴走するWeb制作を実施しています
エックスサーバーにSSHで接続する
ます、エックスサーバーにSSHで接続します。
エックスサーバーへのSSH接続については、 エックスサーバーにSSH接続する方法 をご確認ください。
エックスサーバーの領域内にwp-cliをインストール
binフォルダを作成
SSHでエックスサーバーにログインしたら、下記コマンドでユーザーのホームフォルダ直下にbinフォルダを生成。ここにwp-cliをcurlコマンドでダウンロードさせます。
$ cd ~
$ pwd
/home/serverid
# ホームディレクトリ直下にbinフォルダを生成
$ mkdir bin
$ cd bin
# wp-cliをダウンロード
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# 実行権限を付与
$ chmod +x wp-cli.phar
# wp-cliの動作確認
$ wp --info
OS: Linux sv13041.xserver.jp 5.4.0-131-generic #147~18.04.1-Ubuntu SMP Sat Oct 15 13:10:18 UTC 2022 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/serverid/bin
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.4.0
参考: Installing – WP-CLI – WordPress.org
参考: エックスサーバーにWP-CLIコマンドをインストールする方法 – ネコでもわかるWebのメモ帳
wp-cliが実行しているPHPバージョンを確認する
wp-cliを実行するも、PHPバージョンエラー
早速該当のドメイン領域でwp-cliを実行させようとするも、”PHPバージョンが低すぎます”とのエラーメッセージが表示されます。
# wp-cliを実行させたいドメイン領域のwpインストールディレクトリに移動
$ cd /home/serverid/your-domain.com/public_html
# インストールしているプラグインをリスト表示 // エラー
$ wp plugin list
Your server is running PHP version 5.4.16 but WordPress 6.0.3 requires at least 5.6.20.
エックスサーバーのコマンドライン上で参照されるPHPは管理画面のものとバージョンが異なる
エックスサーバーは管理画面から管理ドメインごとにPHPバージョンを変更させることが可能ですが、コマンドライン上では反映されません。
管理画面からのPHPバージョン操作は、恐らくドメイン領域ごとに仮想化された環境におけるPHPバージョンを変更しているのでは。
コマンドライン上では下記ユーザー領域のphpコマンドが参照されます。
$ which php
/usr/bin/php
$ php -v
PHP 5.4.16 (cli)
エックスサーバーにインストールされているPHPバージョンを確認
まず、エックスサーバーにインストールされているPHPバージョンを確認。
$ php7.3 -v
PHP 7.3.33 (cli) (built: Oct 12 2022 15:20:44) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies
$ php7.4 -v
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
7.3, 7.4についてインストールされていることが確認できました。
wp-cliが利用しているPHPバージョンを確認する
次に、wp-cliが利用しているPHPバージョンを確認。
$ wp --info
PHP binary: /usr/bin/php
PHP version: 5.4.16
コマンドライン上でのphpコマンドと同様、wp-cliはPHPバージョン5.4を指定しているようです。
wp-cliが実行するPHPバージョンを切り替えて実行する
ファイルを直接指定して、一時的にwp-cliコマンドでのPHPバージョンを変更する
インストールしたwp-cli.pharファイルを直接指定し、実行する際にphp7.4により実行することでPHPバージョンを変更して実行させることが可能です。
$ php7.4 ~/bin/wp-cli.phar --info
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
ただし、割り当てられたエックスサーバーのサーバーが古いものである場合、参照したPHPが”php-cli”ではなく、別物の”php-cgi”というコマンドである場合があるとのこと。
参考: Xserver で wp-cli を動かす - Qiita
.bashrcにエイリアスを記述して、自動的にPHPバージョンを指定して実行
上記の方法では、毎回PHPバージョンを実行した上、wp-cliファイルを直接指定して実行する必要があり面倒です。
そこで、ユーザーのホームディレクトリに設置してある.bashrcファイルにエイリアスを記述し、wpコマンドに上記直接指定のコマンドを割り当てます。
# エイリアスを.bashrcに記述 (serveridの箇所は要変更)
$ echo 'alias wp="/usr/bin/php7.4 /home/serverid/bin/wp-cli.phar"' >> ~/.bashrc
# ※ .bashrcファイルに既に記述されたコメント行に追記される場合があるため、その場合はviで編集
# .bashrcを再読み込み
$ source ~/.bashrc
# 確認
$ wp --info
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”コマンドだけで、毎回PHPバージョン7.4で実行されるようになりました。
該当のWordPressインストールディレクトリまで移動し、たとえば下記のようなコマンドを実行します。
# wp-cliを実行させたいドメイン領域のwpインストールディレクトリに移動
$ cd /home/serverid/your-domain.com/public_html
# インストールしているプラグインをリスト表示 // 表形式でプラグイン一覧が表示される
$ wp plugin list
これで無事にエックスサーバー上にwp-cliをインストールさせることができました。
つづいてwp-cliでWordPress大量の投稿記事を一括非公開にする方法 の記事で、WordPress上の大量記事を一括非公開処理します。
成果をだすWebサイト制作、企画・戦略から伴走するWeb制作を実施しています
成果をだすWebサイト制作、企画・戦略から伴走するWeb制作を実施しています。 SEOを意識した制作や、制作後の運用・成果を見据えたWebサイトづくりが得意です。
🍀 Webサイト制作とSEOの専門家 - Marketing Wizard
上リンクには私のプロフィール・実績を掲載しています。ご確認のうえ、お気軽にご相談ください。
この記事の気になった箇所を読み返す:
- エックスサーバーにSSHで接続する
- エックスサーバーの領域内にwp-cliをインストール
- binフォルダを作成
- wp-cliが実行しているPHPバージョンを確認する
- wp-cliを実行するも、PHPバージョンエラー
- エックスサーバーのコマンドライン上で参照されるPHPは管理画面のものとバージョンが異なる
- エックスサーバーにインストールされているPHPバージョンを確認
- wp-cliが利用しているPHPバージョンを確認する
- wp-cliが実行するPHPバージョンを切り替えて実行する
- ファイルを直接指定して、一時的にwp-cliコマンドでのPHPバージョンを変更する
- .bashrcにエイリアスを記述して、自動的にPHPバージョンを指定して実行
- 成果をだすWebサイト制作、企画・戦略から伴走するWeb制作を実施しています
Category: WordPress
Tags: エックスサーバー