wordpressのテーマの更新に失敗するときの対処法(所有者の問題)

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。テーマの更新も成功した。

外部からテーマを移動した場合は、パーミッションだけでなく、所有者にも気をつけたほうがいいだろう。

タイトルとURLをコピーしました