【KUSANAGI 】WordPressのバージョンアップ(更新)ができない!そんなときの対処方法

KUSANAGI

Kusanagi環境下でWordPressが更新できない場合

WordPressの更新がうまくいかなくてこんな風に表示される場合

WordPress を更新

https://downloads.wordpress.org/release/ja/wordpress-5.1.1.zip

から更新をダウンロード中…
更新を展開しています…
いくつかのファイルをコピーできないため、最新版のインストールができません。これはたいていの場合、ファイルのパーミッションが適切でないことが原因です。: wp-admin/includes/update-core.php
インストール失敗

たいていの場合、ファイル・フォルダのパーミッションが適切でないこと

が原因です。

KUSANAGIのオススメパーミッション設定だとwordpressがインストールできません。

 [root@132-113-85-85 mypage]# ls
DocumentRoot log settings tools wp-config.php
mypageというのは説明のための例です。各自のディレクトリ名に置き換えて以降を読んでください。
KUSANAGIでは/home/kusanagi/mypageのように/home/kusanagi以下にwordpressがインストールされています。
mypageというディレクトリ内には、DocumentRoot, log, settings, toolsというディレクトリがあります。その他にwp-config.phpがあります。
wp-config.phpはセキュリティのためにDocumentRoot内ではなくココに置いています(そのようにするようにKUSANAGIに指示されます)。
 
このmypageディレクトリ内で、次のようにします。
find . -type d -exec chmod 777 {} +
とすると現在の階層から下の階層のディレクトリ(-type -d)の権限が777に変更されます。
find . -type f -exec chmod 666 {} +

とすると現在の階層から下の階層のファイル(-type -f)の権限が666に変更されます。
これでwordpressをインストールできるようになります。

wordpressアップデート成功後

wordpressアップデート成功後、このままではセキュリティが弱すぎるので、
find . -type d -exec chmod 755 {} +
chmod 644 wp-config.php
と変更(もとの設定に戻します)します。
KUSANAGIでは、
ダッシュボード(https://[サイトドメイン]/wp-admin/index.php)を確認すると
セキュリティ状況が表示されます。
 
 
このように全てになっていればOKです。
そうでなければ権限やオーナー、ファイルの位置を変更する必要があります。

権限の変更方法

chmodを使う。

オーナーの変更方法

chownを使う。
例えばwp-contentフォルダ以下のオーナーをkusanagi.kusanagiに変更したい場合。
-Rオプションはrecursive、再帰的にという意味でそのディレクトリ以下のどこまでも深い階層に関してこの操作を適用するという意味。簡単にいうとそのディレクトリ以下のファイル・ディレクトリのオーナーをkusanagi.kusanagiにする。
chown -R kusanagi.kusanagi wp-content
WordPressはhttpdユーザーによって操作されているのでファイルやフォルダの権限がkusanagi になっているとインストールすることができません。
DocumentRootフォルダ内で
chown -R httpd .
find . -type d -exec chmod 755 {} +
chown kusanagi wp-content
とすることで、すべてのフォルダとファイルの所有権をhttpdに変更することができます。
こうすることでいちいちパーミッションを変更することなくwordpressのインストールと更新を行うことができます。
ただし、これはkusanagiのデフォルトでの仕様とは異なるので、Nginxが何らかの方法で乗っ取られるとファイルを書き換えられてしまうリスクはあります。

wp-config.phpファイルの場所

WordPressがインストールされたディレクトリの一つ上の階層にwp-config.phpを置くことができる。一つ上の階層はWordPressサイトに悪意の第三者にログインされてもアクセスすることができないので比較的安全。

コメント

  1. 用語から、コマンドの解説まで初心者に優しい解説でした。