2010年7月 9日

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

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
環境変数名を修正しました。

Comments [0] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3