以前、PHP7→PHP8化の影響でプラグインが更新出来なくなる事象が発生し、その際はディレクトリの権限を甘くすることで回避したのですが、今度はWordPress本体がアップデート出来なくなる事象に遭遇してしまいました(悲。
エラー内容を見るとダウンロードされたアップデートファイルの解凍に失敗している風なのですが、ディレクトリの権限を再度確認した感じだと特に問題があるようには見えず、このままでは埒が明かないので、あまりやりたくはなかったのですがnginxの実行ユーザをhttpdからkusanagiへ変更してみることに。
nginxの設定ファイルは /etc/nginx/nginx.conf にあるので、ユーザ設定を
user httpd www;
から
user kusanagi;
へ変更し、service nginx restart で再起動。
すると無事WordPressのアップデートに成功しました。
やれやれだぜ、とその日はそのまま就寝についたのですが、翌朝何気なくサイトを開いてみると「安全な接続ができませんでした」のエラーで繋がらず(汗。
一晩経ったら繋がらないとか意味不明なのでPC側の問題か?と昨日設定作業をしたPCで再度確認してみると
- たまたま昨日から管理画面にログイン状態のままだったブラウザは問題なし
- ところがプライベートウィンドウで開くとエラーになる
という差異があることが分かり、ピンと来ました。
当サイトでは管理画面はキャッシュなし、公開ページはnginxのキャッシュありという設定にしているので、これはnginxのキャッシュが悪さしているな、と /var/cache/nginx/wordpress の中を見てみるとオーナーが httpd になっているのを確認。
これはキャッシュを更新しようにも権限がないのが原因だと判断し
chown -R kusanagi /var/cache/nginx/wordpress/*
でキャッシュディレクトリ配下を一律kusanagiユーザへ書き換えたところ、無事アクセスできるようになりました。
こうゆうことがあるので実行ユーザを変更するのは嫌だったんですが、取り合えず動くようになったので良しとしますか・・・。