[WordPress] アップロードした画像が表示されない場合の解決方法

WordPressでアップロードした画像の表示(読み込み)が突然できなくなりました。アップロード自体は正常にできており、過去に上げた画像は問題なく表示されています。画像関連のプラグインを停止しても問題は解決しませんでした。一応は解決したので過程をメモしておきます。使用サーバーはエックスサーバーです。

環境
  • PHP7.0.7
  • WordPress4.7.4

画像が表示されない原因はパーミッション

原因は、アップロードした画像のパーミッションが600となっていたためでした。604への変更で正常に表示されるようになりました。ただ今後、手動で変更するのは面倒なので原因を調べて対処したほうが良さそうです。

なぜ、パーミッションが600へなったのか?

WordPressをインストールしたディレクトリを含む、以下全てのディレクトリのパーミッションを755から701へ変更したことが原因でした。/wp-content/uploadsのパーミッションを705へと変更することで、アップロードした画像のパーミッションが604となり、正常に表示されるようになりました。(/wp-content/uploads755の場合、画像は644になりました)。

アップロード時に、/wp-content/uploadsのパーミッションから画像のパーミッションを決めているのかもしれません。

参考になりそうなものに、teratail[wordpress]メディアアップロード時のパーミッションについてがありましたが、回答は付いていませんでした。

試しに、WordPressがインストールされたディレクトリに検索をかけたところ、fileperms7個chmod379個が一致しましたが、ソースまでは調べていません。

まとめ

結果の解決はしましたが、原因までは調べていないため、中途半端な記事です。ただ、同じく困っている人がいるかもしれないので残しておきます。

CONTENTS
  1. 画像が表示されない原因はパーミッション
  2. なぜ、パーミッションが600へなったのか?
  3. まとめ