KUSANAGI Runs on DockerでWordpressプラグインのアップデートがうまくいかないときは


はじめに

Wordpressのプラグインやコアのバージョンアップが失敗していて、原因探っていたところフォルダのパーミッションを変更することで回避できることがわかりました。
手順をまとめておきます。

Wordpressのプラグインバージョンアップが失敗する

標準のKUSANAGI Runs on Docker環境でプラグインのアップデートをしようとしたら「更新失敗: ディレクトリを作成できませんでした。」というエラーが出てバージョンアップが失敗してしまします。

原因はフォルダのパーミッション

通常Kusanagi RoDは/home/kusanagiの下の任意のフォルダにインストールされます。
その時のフォルダのパーミッションは755になっていてこれが原因のようです。
バージョンアップの際は一時的にフォルダのパーミッションを777に変更します。
ついでにファイルパーミッションは666に変更しておきます。

まずはDockerのftpコンテナにログイン
bash
$ docker-compose exec ftp sh

以下、ftpコンテナ内での作業です。

# cd /home/kusanagi/puroject
# find . -type d -exec chmod 777 {} +
# find . -type f -exec chmod 666 {} +

これでパーミッションが変わりました。
wp-config.phpのパーミッションは644である必要があるのでご注意ください。

# chmod 644 wp-config.php
# ls -al
total 28
drwxrwxrwx    6 kusanagi 1001          4096 Aug  5 05:54 .
drwxr-x--x    3 kusanagi 1001          4096 Oct 11 03:31 ..
drwxrwxrwx    5 kusanagi 1001          4096 Dec 20 14:25 DocumentRoot
drwxrwxrwx    2 kusanagi 1001          4096 Jul 16 10:24 settings
drwxrwxrwx    2 kusanagi 1001          4096 Aug  5 05:54 tools
drwxrwxrwx    4 kusanagi 1001          4096 Jul 16 10:24 wp-config-sample
-rw-r--r--    1 kusanagi 1001          3351 Oct 11 03:44 wp-config.php

再度バージョンアップ

今度は成功しました!

そのままだとセキュリティ的にゆるゆるなのでパーミッションを戻しておくのを忘れずに。
別エントリーで記載していますがuploadsフォルダは775にしておかないと画像アップロードが失敗するのでこちらも更新します。

# find . -type d -exec chmod 755 {} +
# find DocumentRoot/wp-content/uploads -type d -exec chmod 775 {} +