TOPICS

Webサイトにまつわるはなしや
PCのちょっとした小技

  1. HOME
  2. ブログ
  3. WordPressのはなし
  4. WordPressでアップロードした画像が見れない場合の対応。画像フォルダのパーミッション設定を修正して解決。

WordPressでアップロードした画像が見れない場合の対応。画像フォルダのパーミッション設定を修正して解決。

ロリポップ!からXserverへ、レンタルサーバーの引越しを行う機会がありました。
Xserverには、WordPress簡単移行という機能があり、WordPressの引越しにはこの機能を利用しました。

引越し後に画像のアップロードがうまくいかない!?

WordPress簡単移行の完了後に、新しい画像をアップロードしてみたところ、メディアライブラリの画面にグレーで表示されました。
新しくアップロードした画像の他にも、グレーで表示されている画像がちらほら見られました。

FTPソフトで確認するとアップロードは成功している!

FFFTPで直接、サーバーの画像フォルダの中を見てみるとファイルが存在していて、アップロード自体は成功しているようでした。
ところが、属性(パーミッション)を見てみると、なぜか全て600になっていました。

ファイルの属性を変更するとメディアライブラリに表示された

属性(パーミッション)についての細かい説明は割愛しますが、読み取り権限がないので、そら表示されんわ、という状態です。
そこで、画像ファイルの属性を644に変更し、読み取りができるようにしました。

属性を変更後、メディアライブラリを再度表示すると、アップロードできてない!と思っていた画像が表示されるようになっていました。

フォルダの属性も同様に変更しておくこと

引越し後のサーバーにアップロードした画像の属性が600になっていた原因は、アップロード先のフォルダ自体の属性が、711になっていたからです。
アップロード先のフォルダの属性を、755に変更しておくことで、今後アップロードされる新しい画像の属性は、自動的に644になります。

実は、表示されていた画像は、ブラウザのキャッシュが効いていただけ

XserverのWordPress簡単移行で移行されるデータについて、下記のとおりマニュアルに表記がありました。

■設定が移行されるデータ
・ /wp-content フォルダに設置されているデータ
(アップロードした画像ファイルやプラグイン・テーマファイル等)
・ データベース内のデータ(記事データや各種設定)

https://www.xserver.ne.jp/manual/man_install_transfer_wp.php

今回サーバーの引越しをしたWordPressは、メディアのアップロード先が/wp-content下のフォルダではなく、WordPress直下のフォルダに設定されていたたため、移行対象から外れました。

ところが、ブラウザのキャッシュが効いていたため、移行されていなくてもメディアライブラリに表示される画像があった、というわけです。
ブラウザの閲覧履歴を削除したら、表示されていた画像も全てグレーで表示されるようになりました。

アップロード先のフォルダの属性が711で作成された理由

画像ファイルが全く移行されていない状態で新たな画像ファイルをアップロードしたことで、アップロード先のフォルダがXserver上に新たに作成されました。
このときのフォルダの属性は、親フォルダと同じものが設定されるようです。

今回、親フォルダの属性が711だったため、メディアのアップロード先のフォルダも711で作成されました。

移行対象から外れた画像たちは、FTPで直接移行しました

移行対象とならなかった画像ファイルは、FTPソフトを使って旧サーバーからローカルへダウンロードし、新サーバーへアップロードしました。
これでサーバーの引越しが完了しました。

まとめ

メディアのアップロード先フォルダは、WordPressのデフォルト設定では /wp-content/uploads に作成されます。

今回引越しをしたWordPressでは、/wp-content 以下ではないところへアップロードするように設定されていたことが、今回の現象の原因です。

WordPressの設定は、デフォルトからついついいじってしまいたくなりますが、こういうトラブルの原因になりえます。
よくわからない設定や、変更しないといけない理由が特にないものは、デフォルトから変更しないようにしましょう。

こちらの記事も読まれています