MovableTypeでの画像投稿の失敗
昨日に続き、MovableTypeでのトラブルの記事である。
実は昨日のメール通知機能の不具合を調べていた際にもう一つトラブルを発見していた。
MovableTypeの記事エントリーで画像投稿をする際、画像のサムネイル化を指定すると正常に処理が出来ていないのだ。
迂闊な事に今までMovableType側で画像を含む記事の投稿をテストしていなかったのである。
最初はサーバPC上でImageMagickへのPATHが設定されていないのだろうと考えていたのだが、PATHを確認するとちゃんと設定されていた。
サーバPCで状況を確認すると、どうもPerlがエラーを吐き出してImageMagickを正常に呼び出せていないようだ。
状況確認のために、導入テストに使用した仮想PC上のMovableTypeでも画像投稿を行ってみる。
しかし同じくエラーとなって失敗する。
なんとなくImageMagick側の問題のように思いネット上で調べてみると、どうもインストールしてあるversionが違うようだ。
インストールしてあるversionはImageMagick-5.5.7-Q8なのであるがどうもQ16を導入しないといけないらしい。
早速ImageMagickのダウンロードサイトへ行ってパッケージを入手した。
今回は”ImageMagick-6.2.3-2-Q16-windows-dll.exe”と言うファイルをダウンロードしてきた。
まずは仮想PC側でテストである。
現状のImageMagickをアンインストール後に新しくImageMagickをインストール、OSを再起動して早速画像投稿をしてみる。
何の問題も無く投稿できた。
サムネイル画像もばっちりである。
次にサーバPCへの適用である。
同じく作業を実施後、画像投稿をしてみるが問題は無いようだ。
どういう経緯でImageMagick-5.5.7-Q8を導入したのか、今となっては覚えてないが問題が解決してよかったのである。
と締めたい所であったのだが、新たな問題が発覚した。
ココログでは日本語が含まれたファイル名でアップロードすると、日本語部分は無視されて英数字のみのファイル名になってしまう。(日本語だけのファイル名ではどうなるのかは知らない)
しかしMovableTypeでは名前が文字化けしてサーバにアップロードされてしてしまうのだ。
いろいろ調べてみたのだが、MovableTypeではUTF-8と言う文字コードを使用しているが、サーバのwindowsXPは
UTF-16を使用していることに関係しているようなのだ。
同じUTFでも8と16では日本語部分の管理に割り当てるデータバイト数が違うのだ。
UTF-6では3バイト、UTF-16では2バイトのようなのだ。
このため文字の区切りがずれるためにが日本語が化けて表示されるのである。
これはMovableTypeでアップロードするファイルを取り込む際には、windowsの機能を利用しているので問題ないのだがサーバ側で書き込む際にMovableTypeがwindowsへUTF-8のまま書き込んでしまう為のようだ。
現状windowsのファイルシステムではUTF-8を自動認識してくれない。
UTF-8と16のコードの相互変換は可能だが、アップロードしたファイルをサーバ側で格納する際にリアルタイムで行われないと意味がない。
MovableType側で書き込む際にサーバOSを意識してコードを変えてくれれば良いのだが、現状そのような機能は持っていない。
まさにないない尽くしなのである。
サーバOSをUNIX系にすれば問題ないのだろうが今のところその予定はない。
あとは根本的にはMovableType側で対応するしかないので、現状この問題は私では手に負えないのである。
対症療法としてココログ同様アップロードするファイル名に日本語を使用しないようにするしかないのである。
| 固定リンク
「自宅サーバ関連」カテゴリの記事
- Android12搭載のスマートフォンから自宅ネットワークへVPN接続できる環境を作る(2022.09.04)
- UQWiMAX WiMAX2+5Gでポート開放(2022.08.01)
- Celeron N5095搭載のミニPCを購入(2022.05.06)
- NginxをWindowsのコマンドラインから操作するバッチファイル(2022.03.31)
- 自宅ネットワークのマルチホーミング用ルータを更新する(2020.02.17)
コメント