Movable Type 5で「サーバーに Image::Magickか、Image::Magickの動作に必要な他のモジュールがインストールされていません。」となる事象について

Movable Type 5で「サーバーに Image::Magickか、Image::Magickの動作に必要な他のモジュールがインストールされていません。」となる事象について

Posted at July 9,2010 3:55 AM
Tag:[ImageMagick, MovableType, TroubleShooting]

Movable Type 5で「サーバーに Image::Magickか、Image::Magickの動作に必要な他のモジュールがインストールされていません。」となる事象の対処方法を紹介します。ご質問をいただきましたので本エントリーで情報展開致します。

注:ホテルで借りたPCで動作確認しており、再起動するとインストールした環境がすべてクリアされてしまうため、再起動しないと確認できない部分は割愛しています。よって本エントリーの内容では解消できない可能性もあります。予めご了承ください。

2010.09.13追記
関連記事で「ActivePerl 5.10でImageMagickが正常に動作しない不具合の対処」をエントリーしました。

1.問題点

Windows+XAMPP環境でMovable Type 5を利用するとImage::Magickが認識されず、mt-check.cgiを実行すると、「サーバーに Image::Magickか、Image::Magickの動作に必要な他のモジュールがインストールされていません。」というメッセージが表示されます。

メッセージ

また、MTのダッシュボードにも「Image::Magickが設定されていません。Image::Magickがインストールされていないかまたは正しく設定されていないため、Movable Typeのユーザー画像機能を利用できません。この機能を利用するには、Image::Magickをインストールするか、他のイメージドライバを使用する設定を行う必要があります。」というメッセージが表示されます。

メッセージ

Image::Magickが正常に認識されなかった環境は以下です。

  • XAMPP 1.7.3(Apache2.2.14)
  • ActivePerl 5.10.1 Build 1007
  • ImageMagick 6.5.7-10 Q8
  • PerlMagick(Image-Magick-6.5.7)

PerlMagickは、MS-DOSプロンプトを使ってppmコマンドでインストールしました。

ppm install http://www.bribes.org/perl/ppm/Image-Magick.ppd

MS-DOSプロンプト

ImageMagickはとりあえずPerlMagickに合ったバージョンをインストールしました。質問者の方のコメントでは「ImageMagick 6.6.2-6 Q8でもNG」とのことでした。

また、ダッシュボードでエラーメッセージが発生している部分をトレース結果も掲載しておきます。関係ありそうな箇所を赤色で示しています。

tmpl/cms/dashboard.tmpl

…前略…
    <mt:unless name="can_use_userpic">
        <div id="userpic" class="permission-error msg msg-info">
            <div class="title"><__trans phrase="Image::Magick is not configured."> <a href="#" class="detail-link"><__trans phrase="Detail"></a></div>
            <div class="detail">
                <p><__trans phrase="Image::Magick is either not present on your server or incorrectly configured. Due to that, you will not be able to use Movable Type's userpics feature. If you wish to use that feature, please install Image::Magick or use an alternative image driver."></p>
            </div>
        </div>
    </mt:unless>
…後略…

lib/MT/CMS/Dashboard.pm

sub dashboard {
    my $app = shift;
    my (%param) = @_;
    …中略…
    eval { require MT::Image; MT::Image->new or die; };
    $param->{can_use_userpic} = $@ ? 0 : 1;
    …後略…
}

lib/MT/Image.pm

sub new {
    my $class = shift;
    $class .= "::" . MT->config->ImageDriver;
    my $image = bless {}, $class;
    $image->load_driver
        or return $class->error( $image->errstr );
    if (@_) {
        $image->init(@_)
            or return $class->error( $image->errstr );
    }
    $image;
}

lib/MT/Image.pm

sub load_driver {
    my $image = shift;
    eval { require Image::Magick };
    if (my $err = $@) {
        return $image->error(MT->translate("Can't load Image::Magick: [_1]", $err));
    }
    1;
}

上記のエラーの詳細(日本語部分は文字化けして判読不能)

Can't load 'C:/usr/site/lib/auto/Image/Magick/Magick.dll' for module Image::Magick: load_file:?c.A???[????????B?X?^?b?N???I?[?o?[?t???[????????B at C:/usr/lib/DynaLoader.pm line 201. at lib/MT/Image.pm line 188 Compilation failed in require at lib/MT/Image.pm line 188.

2.対処方法

Windowsの環境変数にシステム環境変数「MAGICK_HOME」を追加します。システム環境変数の設定方法は次の通りです。

マイコンピュータを右クリックして「プロパティ」を選択。開いた画面で「詳細設定」タブをクリックして、「環境変数」をクリック。

システムのプロパティ

システム環境変数の「新規」をクリック。

環境変数画面

開いた「システム変数の編集」画面に次の内容を入力して、「OK」をクリック。以降、元の画面で「OK」をクリック。

  • 環境変数名:MAGICK_PATHMAGICK_HOME
  • パス:インストールしたImageMagickのパス(「C¥Program Files¥ImageMagick-6.5.7-Q8」など)

システム変数の編集画面

これでダッシュボード画面では正常に認識されるようになりました。ただし、アイテム一覧画面に移動するとエラーが発生します。再起動を行えば解消されるかもしれませんが、こちらについては別途確認したいと思います。

上記の手順以外で適切な方法がありましたらご連絡ください。藤本壱さんの記事「MTOS活用テクニックの ActivePerl/ImageMagickインストール手順の修正」では、

  • ActivePerlのバージョンとImageMacigkのPerlモジュールのバージョンを合わせること
  • ppmを利用しないこと

が書かれています(こちらの手順は時間の都合上、未確認です)。

3.参考サイト

本記事の参考サイトは以下です。ありがとうございました。

kiyoeri.gotdns.com - ImageMagickを Vistaに導入

2010.09.07
環境変数名を修正しました。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)