主に技術的なことを書くブログ

浅めにマークアップ&フロントエンドの技術的なことをメモしていましたが、ざっくばらんに書いています。

ローカルのWordPressのプラグインのアップデートでWP-CLI使ったりいろいろハマった件

おひさしぶりにWordPressで複合的にハマったので書きます。

それっぽい情報はたくさんあるけど、ピンポイント過ぎてカスった情報しかなかったので、同じように無駄に時を過ごそうとしている誰かのために書き残しておきます。

WP-CLIのコマンドが効かない

管理画面からプラグインをアップデートしようと思ってもうまくいかない(そもそもの問題)ので、WP-CLIというコマンドでWordPressをいろいろ触れるコマンドラインツールを使ってやってみることにしたのですが。

インストールの手順などはこちらなどで簡単にできます。

参考:WP-CLIの使い方: その壱 – インストールと簡単な使い方の例 | わーどぷれすっ!

インストール後の確認で

wp cli version  

とか

wp --info

とか打つとちゃんと返ってくるけど、

wp plugin update --all

とか打っても返ってこない。No Response。

最初パスがとおってないとか、入れる場所がおかしいとかいろいろ触ってみたけど、結局わからず。。

マルチサイトだと wp-cli.yml をつくれ的なことが書いてあるっぽいからこの辺り臭いなぁ、とかいろいろやって、 wp --info で出てくる WP-CLI project config: あたりに wp-cli.yml 設定する方法とか調べてもまったく出てこないので、もう諦めたんですけど。

というか、そもそも、wp-cli.yml を置いておくと、マルチサイトだったら本来

wp theme status --url=test.example.com

こういう風に --url parameter つけないとだめなのがつけなくてよくなるよっていうことが公式ドキュメントの英語をよくよく読んだら書いてあったので、ダメ元で

wp plugin update --all --url=test.example.com

ってやってみたらいけた!!

Downloading update from https://downloads.wordpress.org/plugin/addquicktag.zip...
Using cached file '/Users/xxxxxx/.wp-cli/cache/plugin/addquicktag-2.4.2.zip'...
Unpacking the update...
Warning: Could not create directory. // ←ディレクトリ作れないって

でも肝心のプラグインのアップデートに失敗!! \(^o^)/

ローカル環境でアップデートできないプラグインたち

管理画面からのアップデートでも

An error occurred while updating プラグイン名: Could not create directory.

的なエラーが出てアップデートできなかったので。結局、WP-CLIのハマり、いらなかったやつですね。

パーミッションを変えてみる

/wp-content/upgrade/ というディレクトに一時ファイルが展開されます。 当該プラグインだけではなく、このディレクトリが存在するかどうか、及びパーミッション(707 など)を確認してください。

引用元:"WordPress › フォーラム » プラグインが更新できない

とりあえず、/wp-content/upgradeディレクトリのパーミッション変えてみてもなんともならず

ディレクトリを一旦消して、作りなおす

adzleese - yes! I'm pretty sure the folder is just for temp files when upgrading wordpress or its plugins. If you think you might need the content inside, you can always rename to "upgrade2", etc and then create the new upgrade directory. Empty. :)

引用元:"WordPress › Support » 3.0 Plugin Upgrade Bug? Could Not Create Directory

ここで問題の原因が発覚。

ローカルとはいえ、パーミッションをいじるのにFTPソフトつないでやってたのですが upgrade ディレクトリを消そうとすると

Permission denied. Please contact your web hosting service provider for assistance.

というエラーで消せない。仕方ないので手で削除してみたら、Macのパスワード聞かれて消せました。なんでや。

念のためコマンドから mkdir で作り直して

wp plugin update --all --url=test.example.com

で無事アップデート完了。

おそらくroot権限とFTPでつないでる権限が違うから消せなかったんですね。

なぜ、WordPress ルートディレクトリ直下に置いてる wp-cli.yml が無視されているのか、という謎だけが残ります。

参考:Wordpress プラグインの自動インストール・アップグレードができない。 | doli blog