wordpress
でテーマをscp
などで移動した場合、テーマ更新が失敗する。
環境
- WordPress 5.2.1
- Docker version 18.09.0, build 4d60db4
- docker-compose version 1.23.1, build b02f1306
- docker-machine version 0.16.0, build 702c267f
現状
下のようなメッセージが表示される。
いくつかのファイルをコピーできないため、最新版のインストールができません。これはたいていの場合、ファイルのパーミッションが適切でないことが原因です。
パーミッションを変更してたのにおかしいと思ったが、一度テーマをdocker cp
で移していたので、ls -l
で確認すると、
/var/www/html/wp-content/themes # ls -l
...
drwxrwxrwx 2 502 dialout 4096 Jun 2 05:24 some-theme
drwxr-xr-x 8 www-data www-data 4096 May 7 20:27 twentynineteen
...
となっており、ユーザ名とグループ名が既存テーマのものと異なっている。これが原因だろう。
処置
ユーザ名とグループ名を修正すればいい。chown
を使って所有者を変更する。
/var/www/html/wp-content/themes # chown --help
Usage: chown [-RhLHPcvf]... USER[:[GRP]] FILE...
Change the owner and/or group of each FILE to USER and/or GRP
-R Recurse
...
-R
オプションを使って再帰的に中身のファイルとディレクトリについても変更する。以下を実行すればOK。
/var/www/html/wp-content/themes # chown -R www-data:www-data some-theme
# 確認
/var/www/html/wp-content/themes # ls -l
...
drwxrwxrwx 8 www-data www-data 4096 May 22 14:20 some-theme
drwxr-xr-x 8 www-data www-data 4096 May 7 20:27 twentynineteen
...
Good。テーマの更新も成功した。
外部からテーマを移動した場合は、パーミッションだけでなく、所有者にも気をつけたほうがいいだろう。
コメント