WordPressのサーバー移動で画像ファイルが表示されない!?原因は日本語ファイル名かも。


ブログやCMSのシステムとしてWordpressを使ってる人は多いと思います。
昨日、WordPressでちょっとハマりかけたのでメモも兼ねて書いときます。

今回言いたいことはこれ!
WordPressにはできれば日本語の入ったファイルはアップしないように。
サーバーの移動などで、ファイル名に関する不具合が出た場合は転送時の文字コードを変更して対応しましょう。

日本語のファイル名の画像を移動すると見えなくなる!?

リニューアルやテスト環境から本サーバーへの移動など、ドメインを変更する場合には使用しているWordpressの移動も必要になりますよね。
これまでせっかく書いてきた記事を消すわけにはいかないので、データやファイルを含めごっそりまるまる全て移動させることになります。

今回、サイトのリニューアルの公開にともない、仮サーバーから本サーバーへデータを移動する必要があり、入っているWordpressを仮サーバーから本サーバーへ移動しました。
公開までに日があったので、仮サーバー上で先にブログを書いてもらっていました。
またWordPressの設定なども全て仮サーバー上で終わらせていたので、そのまま本サーバーに持ってくるだけで動くはずでした・・・が、
いつも通り作業をやっていたつもりだったのですが、一部の画像が表示されない!!
※その当時のキャプチャを入れたかったのですが、またまた忘れてました・・・

ページ内に表示している画像のいくつかが表示されないんです。
表示されるものと表示されないものがあって、それらを調べてみると、表示されてないのはファイル名に日本語が使われているもの
そもそも日本語の入ったファイルを上げないでと伝えていたのですが、日本語が入ったファイルが多数。
ということで、多くの画像が表示されていない状況でした。

WordPressの移動に際しては、データベースの移動、ファイルの移動が主なんですが、とりあえず切り分けのために画像そのものをURL指定して表示してみたけどやっぱりだめ。
つまり画像そのものがうまく表示できていないので、データベースは関係ないらしい。
ということで、ファイルの転送だけに絞って調べてみることになるんだけど、ファイルをダウンロードしてアップロードするっていう過程の中でおかしくなっている模様。

FileZillaでファイルの転送時の文字コードの設定で直った

色々と調べた結果、転送時のファイル名の扱いが原因っぽくて、ダウンロード元から自分のローカル環境、そしてアップロード先へと3つの環境を渡り歩く。
その中で日本語のファイル名の扱いが影響していて、結論としては、ファイルのダウンロードアップロードする際に、文字コードを統一することで直りました

僕は普段FileZillaを使ってるので、FileZillaを例に対応した内容を書きます。

今回変更したのは、FTPで接続する際の設定画面で、このようにファイルの転送に対して文字コードの設定ができます。
UTFを強制っていうのを選びます。
ftp

ここが、自動検出になっていたので、何らかの形で情報が書き換えられたんだと思います。
UTFを強制の設定にすると、移動先のサーバーでも正常に表示されました。

今回は、ファイル名は正しいはずなのにうまく表示されないという不具合で、解決難しいんじゃ・・・とヒヤッとしましたが、何でも調べてみると出てみるもんですね。
昨日はホームページのリニューアルのリリース日で、ドメインやサーバーの設定を行ってもらった後に急いで対応したので、表示されない時には焦りました。f(^^;

はじめにも書きましたが、そもそも日本語のファイル名はサーバーにアップする場合は使わないようにしてください。
一応表示はされますが、こういった余計なトラブルにならないように、また海外からのアクセスも考えると半角英数字で統一しましょう。
ということで、こんなしょうもないとこでつまずくのはもったいないの(わりに解決に時間がかかる・・・)で同じようなことが起こった人はこれを参考にやってみてください。

[RelService] [Service]