WordPressの管理画面からプラグイン更新を行うと
古いプラグインを削除できませんでした。
と出て更新が出来なかった。
更新が出来なくなる原因はいくつかありそうだが、自分が解決した時の対処法を記載する。
なお、WordPress構築サーバにSSHで接続が出来、WordPressのディレクトリにsudoでアクセスが出来ることが必須。
環境:
- WordPress:5.6.2
古いプラグインを削除できないということなので、WordPressユーザがプラグインディレクトリの操作が出来ないことが原因のように思えたので、ディレクトリの権限周りを確認してみる。
特に設定を変更していなければ、下記ディレクトリに存在する。
[WordPressのルートディレクトリ]/wp-content/plugins/
上記ディレクトリをls -alで見てみる。
wordpress_xxxというユーザがWordPressのユーザだが、何故かapacheユーザが所有者となっているディレクトリがある。
今回更新に失敗しているプラグインがまさにapacheユーザとなっているディレクトリのプラグインなので、このディレクトリの所有者をwordpress_xxxユーザに変更する。
変更は下記コマンドを実行(wordpress_xxxは環境により異なるので自身のWordPressの動作ユーザを確認して適宜書き換えてください)。
$ sudo chown wordpress_xxx:wordpress_xxx -R [WordPressのルートディレクトリ]/wp-content/plugins/
実行後、再度管理画面からプラグインの更新を行う。
無事更新されたことを確認。
apacheユーザになっていたプラグインは2021年2月中旬頃に更新されたディレクトリだったので、どこかのバージョンで一時的に不具合か何かが混入していたのかもしれない。
再現したら根本原因の確認を行おうと思う。