wp-cli で ssh経由でレンタルサーバの WordPress を管理しようとしたら意外とハマった件

最近、WordPressを扱うことが多くて、これ管理自動化できないかなぁと思っていたら、 wp-cli なるものを見つけたので、使ってみてました。

Coreやプラグインのバージョンアップだったり、他色々な操作がコマンドでできるようです。なかなか素敵です。

…が、落とし穴が一つ。この wp-cli がphpで書かれたプログラムだということ・・。

php コマンドで処理されるのですが、環境によっては cgi用のphpにパスが通ってたり、バージョンが古かったりと、思い通りには行きません…。

というわけで、ちょっとしたハック。

操作したい環境の Home 以下に、 bin ディレクトリを作って、その中に wp シェスクリプトを書いてあげるようにします…。こうすれば、リモートから wp-cli コマンドを実行した際に、シェルスクリプトが実行され、任意の php で、wp-cli を実行できるようになります。
(~/bin がPATHに指定されている前提。適宜 パスを通すこと)

以下、それぞれ ~/bin 以下に wp(次に示す例)と wp-cli.phar が置いてある想定です。

XServer の場合

#!/bin/sh
exec /usr/bin/php7.2 `dirname $0`/wp-cli.phar "$@"

CoreServer の場合

#!/bin/sh

exec /usr/local/bin/php72cli `dirname $0`/wp-cli.phar "$@"

他の環境でも、ちょっとアレンジしてあげれば行けるかと思います。

コメント

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