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

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

環境
PHP
7.0.7
WordPress
4.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個が一致しましたが、ソースまでは調べていません。

おわりに

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