うわあなんだこれは
原因ははっきりしてます。
パーミッションの設定がおかしいことです。
そもそもパーミッションの設定はWordPressをインストールした時から適切に設定されてる(所有者権限なら問題なく実行できる)はずですが、
自分はなぜか所有者権限にならないという問題を抱えていました。
ちなみにその他権限では問題なく動くので、wp-admin
以下のファイルを
とかやって動かしていました。(よくない)
【参考】
しかし、WordPressの更新をしようとした時、画像のようにやばばな状態になったので、
これを機になんとか所有者権限として実行しようとしました。
その時の解決した手順のメモです。
(ググってもApacheばっかりでNginxの解決法が見つからない…)
そもそも何がいけないのか
1. ダウンロードしたWordPressの所有者がrootになっている
DebianでのNginxの実行ユーザー名、グループはwww-data:www-data
です。
(これ知らなかったんですけど、Nginxのデフォルトユーザー名ってディストリビューションによって変わるんですね…)
Nginx起動時のユーザー名の確認方法はnginx.conf
を見るのが早いでしょうか。
デフォルトだと一番最初の行にuser www-data;
という記述があります。
ユーザー名、グループ名を確認したら(以降www-data
で進めていきます)、WordPressのファイル全部の所有者をwww-data
にします。
以下のコマンドを実行します。
ちゃんと変更されたかは
で確認できます。
自分の場合これにはすぐ気づいて修正したのですが、それでも更新できずに1ヶ月くらいあれ~~って言ってました。
次のやつが自分の場合の決定的な解決法です。
2. php-fpmのユーザー名がapacheになっている
お前お前お前お前
php-fpmはNginxでPHPを実行可能にするやつみたいです。(よくわかってない)
fpmのwww.conf
のファイルの中身をみると、
(自分は/etc/php/7.0/fpm/pool.d/www.conf
にありました。)
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = apache
group = apache
となっていて、ユーザー名とグループ名がapache:apache
になっていました。
(なぜこれでちゃんと動いていたかはわかりません…)
なにはともあれ修正して、
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www-data
group = www-data
php-fpmを再起動します。
ついでにNginxも再起動
そうしてもう一度WordPressの更新をすると…
更新できました!!!
おしまい
nginxの本を貸してもらったのでちゃんと勉強したいと思います。(申し訳程度の日記要素)