MovableType
CentOS 7でPNG画像が読み込めない場合の対処方法
サムネイル画像が生成されない
CentOS 7に、MT6.3、MT6.5をインストールした環境でサムネイル画像が生成されない自体が発生した。
イメージドライバーをImageMagick、GDと変更したが変化はなく、コマンドを直接実行するとImage::Magick からサムネイルが正常に作成された。こまった。
環境
CentOS 7.6、7.7
再現手順
- アイテムの新規登録、アイテム・画像カスタムフィールドから画像をアップロードする。
- サーバーに画像がアップロードされるが、サムネイル画像が生成されず、0kbのファイルが生成される。
解決方法
暫定的な対策として、以下のImageMagickLoader.pl を「addons」フォルダに設置することで解消される可能性があります。
https://gist.github.com/usualoma/ae1a508ba5f2564b0b807c110296b5ae
反映手順
- MTの管理画面にログインする。
- 管理画面からアイテムの一覧を開き、サムネイルが生成されていないことを確認する。
- サーバーに接続し、ImageMagickLoader.pl を「addons」フォルダに設置する。(Community.pack などあるところ)
- サーバーから、生成が失敗したサムネイル画像が保存されている「asset_c」フォルダを削除する。
- MTの管理画面にログインする。
- 管理画面からアイテムの一覧を開き、サムネイルが生成されていることを確認する。
- おわり。
原因
@usualoma さんの記事「libmysqlclient.so.18はいかにしてlibz.so.1を壊したか)」によると、
「(perlでImage::Magickを使って)PNG画像のサムネイルが生成できない」という問題が発生し、条件を絞り込んでいくとどうも「DBD::mysqlをImage::Magickよりも先に読み込んだ場合に生成できなくなる」ということが分かりました。ポイントは、
MySQL Yum Repositoryのmysql-community-libs-compatでlibmysqlclient.so.18をインストールしている
libmysqlclient.so.18にリンクされた共有ライブラリを動的な環境で読み込んでいる
というころにあるようです。
ということが原因の様です。対応方法を教えていただきありがとうございました!!!!