[2020.10.29追記]
大幅かつ端的に書き換えた改訂版を「2020年版」として公開しました。
以降は過去記事アーカイブです。すでに無効となっている情報もありますのでご注意ください。
『WP-CLI Advent Calendar』3日目担当の @tecking です。
一度使い出したら超絶便利、プラグインのアップデートなどサイトメンテの効率もぐっとアップする『WP-CLI』。少しでも多くの人に使ってもらえたらなあ……ということで、レンタルサーバにサクッと導入するためのスクリプトを作ってみました。SSH接続できるレンタルサーバを契約してる方、これを機会にぜひチャレンジしてみてくださいマセ。
ちなみにこのスクリプト、国内でも比較的ユーザーが多いと思われる『さくらのレンタルサーバ』『ヘテムル(heteml)』への導入を想定して作りました。当ブログの過去記事
で紹介した手順を改良しつつ作ったスクリプトです。
検証環境
- さくらのレンタルサーバ スタンダード
- ヘテムル(本記事の後半に追記あります)
- ロリポップ(YATさん情報ご提供ありがとうございます!)
- エックスサーバー X10プラン(本記事の後半に追記あります)
[2019.6.2追記]
さくらのレンタルサーバ スタンダードに動きがあったようです。新たに記事を書きました。
さくらのレンタルサーバ スタンダードに WP-CLI が標準装備された模様
導入の手順
スクリプトはGitHubで公開しています。
まずは『WP-CLI』のサイトに書かれている動作環境を満たしているか確認しましょう。
Requirements
UNIX-like environment (OS X, Linux, FreeBSD, Cygwin); limited support in Windows environment
PHP5.3.25.3.295.4 or later
WordPress3.5.23.7 or later
特にチェックが必要なのがPHPのバージョン。以前から上記のサーバを使っていたりするとバージョン設定が古いままだったりするので、これを機にきちんと新しいものにしておきましょうね。
-
- 契約しているサーバのホームディレクトリ(さくら:www とか MailBox ディレクトリのある階層 ヘテムル:apps とか web ディレクトリのある階層)に SSH でログイン
- 下記を実行して本スクリプトをダウンロード(警告が出ますがキニシナイ)
wget --no-check-certificate https://raw.githubusercontent.com/tecking/wp-cli.setup.sh/master/wp-cli.setup.sh
-
- 下記を実行して本スクリプトのパーミッションを変更
chmod +x wp-cli.setup.sh
-
- 下記のコマンドで本スクリプトを実行(警告が出ますがキニシナイ)
./wp-cli.setup.sh
-
- メッセージに沿って下記のいずれかを実行
source ~/.cshrc
source ~/.bash_profile
ご留意事項
- 何度も動作確認はしていますが At Your Own Risk にてお使いください(「チャレンジしてみてくださいマセ」とか書いときながらヒドいね)
- WP-CLI 本体(wp-cli.phar)は、スクリプト実行時につくられる ~/usr/local/bin にダウンロードされます
- bash 用のタブ補完定義ファイル(wp-completion.bash)は ~/ にダウンロードされます
- WP-CLI が導入できたら wp-cli.setup.sh は削除してもかまいません
- 下記の環境なら、『さくらのレンタルサーバ』『ヘテムル』以外でもスクリプトが実行できそうです
- sh が使える(which sh で確認 まあ、フツーは使えます)
- wget が使える
(which wget で確認)wget の有無を判別する条件分岐を追加しました - ログインシェルが csh または bash (デフォルトのログインシェル:さくらのレンタルサーバ=csh、ヘテムル=bash)
- 一部、使えないコマンドがあります(現在確認済みのもの)
- ヘテムル…… wp db optimize
[2018.1.7追記]
ヘテムルの新サーバ(コントロールパネルで usersXXX と表示されるサーバ)にて本スクリプトを実行後
source ~/.bash_profile
したところ
wp --info /usr/bin/env: php: No such file or directory
というエラーが返ってきました。php へのパスが旧サーバ(コントロールパネルで ftpXXX と表示されるサーバ)と違うのが原因で、本スクリプトを実行後に新サーバ上で下記を実行したところうまくいきました。
PHP 7.1 で WP-CLI を実行させたい場合の例です。何らかの理由で 5.6 または 7.0 で実行させたいときは1行目の記述を適宜変えてください。
echo 'PATH=$PATH:/usr/local/php/7.1/bin' >> ~/.bash_profile source ~/.bash_profile
wp --info PHP binary: /usr/local/php/7.1/bin/php PHP version: 7.1.10 php.ini used: /usr/local/php/7.1/etc/php.ini WP-CLI root dir: phar://wp-cli.phar WP-CLI vendor dir: phar://wp-cli.phar/vendor WP_CLI phar path: /home/users/foo/bar WP-CLI packages dir: WP-CLI global config: WP-CLI project config: WP-CLI version: 1.4.1
[2018.9.19追記]
エックスサーバー X10 プランで WP-CLI をインストールしたところ wp コマンドをたたいても
wp --info PHP Parse error: syntax error, unexpected '[' in phar:///home/foobar/usr/local/bin/wp/vendor/wp-cli/i18n-command/src/MakePotCommand.php on line 29 Status: 500 Internal Server Error X-Powered-By: PHP/5.3.3 Content-type: text/html
というエラーが返ってきてしまいました。デフォルトだと、コマンドラインから使える PHP のバージョンが古く WP-CLI が使えないようですね。
そこで「エックスサーバーのPHPのバージョン|レンサバ比較ガイド」の記事を参考に、コマンドラインでの PHP バージョンをエックスサーバーが提供する最新版(2018.9.19現在の最新バージョン 7.1.2)に上げることにします。
まず ~/bin ディレクトリを作り、その中に /opt/php-7.1.2/bin/php へのシンボリックリンクを作成。
mkdir $HOME/bin ln -s /opt/php-7.1.2/bin/php $HOME/bin/php
その上で ~/.bash_profile の文字列を sed で置換。
sed -i -e 's|PATH=$PATH:$HOME/bin|PATH=$HOME/bin:$PATH|' ~/.bash_profile
いったんログアウトして、再ログイン。
wp --info OS: Linux 2.6.18-426.el5.BET #1 SMP Tue Feb 13 21:12:18 JST 2018 x86_64 Shell: /bin/bash PHP binary: /opt/php-7.1.2/bin/php PHP version: 7.1.2 php.ini used: /opt/php-7.1.2/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/foobar WP-CLI packages dir: WP-CLI global config: WP-CLI project config: WP-CLI version: 2.0.1
無事使えるようになりました。
関連記事
- 新サーバー環境への移設機能および無料独自SSLご提供開始日について(2017/10/02 11:21) – レンタルサーバー「heteml(ヘテムル)」
- cron 設定マニュアル – レンタルサーバー「heteml(ヘテムル)」
ではでは、ハッピーなWP-CLIライフを! 『WP-CLI Advent Calendar 2014』次の日直(12月4日)は @wokamoto さんです。
(photo by Martin Kenny CC BY-NC-SA)
コメントを残す