2010年9月29日

Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について(つづき)

September 29,2010 12:30 AM
Tag:[, ]
Permalink

Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について」の問題について、シックスアパートのサポートより連絡を頂き、解消しました。

2010.10.06追記 本問題はMovable Type 5.031で解消されました。

対処前
対処前の再構築画面(Script Error)

対処後
対処後

対処方法は、lib/MT/PublishOption.pmを任意のエディタで開いて、下の赤色で示す1行をコメントアウトまたは削除します。

変更前

sub archive_build_is_enable {
    my ( $blog_id, $at ) = @_;
    require MT::TemplateMap;
    local $Data::ObjectDriver::DEBUG = 1;
    my $map = MT::TemplateMap->load({
        blog_id => $blog_id,
        archive_type => $at,
        build_type => { 'not' => DISABLED() },
    });
    $map ? 1 : 0;
}

変更後

sub archive_build_is_enable {
    my ( $blog_id, $at ) = @_;
    require MT::TemplateMap;
    my $map = MT::TemplateMap->load({
        blog_id => $blog_id,
        archive_type => $at,
        build_type => { 'not' => DISABLED() },
    });
    $map ? 1 : 0;
}

保存後、ファイルを元のディレクトリにアップロードすれば正常に再構築が行えるようになります。

Comments [4] | Trackbacks [0]
2010年9月27日

XREA/CORESERVERでMovable TypeのCaptchaが表示されない不具合について

XREA/CORESERVERで、Movable TypeのCaptchaが表示されない不具合があります。Movable Type 4.x/5.xで発生するようです。

当ブログのコメントでやりとりがありましたので本エントリーで情報展開致します。

1.問題点

XREA/CORESERVERで、Movable Typeのコメント投稿にCaptchaを設定しても、Captcha画像が表示されません。

問題発生時のコメント投稿部分のCaptcha

本来のコメント投稿部分のCaptcha

事象を確認できたのはXREA+です。また頂いたコメントからCORE-MINIも発生するようです。CORE-Aでは不具合は確認できませんでした。

なお、Captchaの設定は、管理画面の「設定」→「コミュニケーション」でCAPTCHAプロバイダから「Movable Type既定」を選択して、インデックステンプレートを再構築します。

この作業を完了して、XREA/CORESERVERでCaptchaが表示されない場合は本エントリーの事象に遭遇している可能性があります。

2.原因

ネットで調べたところ、XREA/CORESERVERではImageMagickのmontageコマンドが動作しないようです。Movable TypeのCaptcha表示の内部処理では、montageコマンドを実行するためにPerlMagick APIのMontageを使用しているので、その部分でエラーになっているようです。

3.修正内容

lib/MT/Util/Captcha.pmを任意のエディタで開き、以下の部分を修正します(赤色部分を削除して、青色部分を追加)。

修正前

sub _generate_captcha {
    …中略…
    # Combine all the individual tiles into one block
    my $tile_geom    = join('x', $len, 1);
    my $geometry_str = join('x', WIDTH(), HEIGHT());
    my $im = $imbase->Montage(geometry => $geometry_str,
                              tile     => $tile_geom);
    $im->Blur();
    …中略…
}

修正後

sub _generate_captcha {
    …中略…
    # Combine all the individual tiles into one block
    my $tile_geom    = join('x', $len, 1);
    my $geometry_str = join('x', WIDTH(), HEIGHT());
    my $im = $imbase->Append(stack=>'false');
    $im->Blur();
    …中略…
}

Appendは画像を結合するAPIです。stackの値に「false」を設定すると横並び(左から右)に結合します。「false」はデフォルト値なので、「stack=>''」としても同様の効果があります。「true」を設定するか、stackを記述しないと縦方向(上から下)に結合します。

参考:縦方向に結合したCaptcha

3.参考情報

参考情報は以下です。ありがとうございました。

Comments [0] | Trackbacks [0]
2010年9月25日

Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について

September 25,2010 12:03 AM
Tag:[, ]
Permalink

Movable Type 5.03へのアップグレード後(または5.03を新規インストール後)、管理画面右上の再構築ボタンをクリックすると、表示された再構築画面に「Script Error」のエラーメッセージが表示される事象が、特定のサーバで発生するようです。ウェブサイト・ブログいずれの再構築も同様です。

2010.10.06追記 本問題はMovable Type 5.031で解消されました。

「エラーが発生します」というコメントを頂いて確認したところ、利用しているCORESERVERで同様の事象が発生しました。

再構築画面

今のところ発生が確認されているサーバは、XREA・CORESERVERです。ブログ記事一覧やテンプレート編集画面からの再構築は正常に行えます。

ということで、現在サポートに問い合わせ中です。解消しました。対処方法については「Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について(つづき)」を参照してください。

Comments [2] | Trackbacks [0]
2010年9月13日

ActivePerl 5.10でImageMagickが正常に動作しない不具合の対処

September 13,2010 1:23 AM
Tag:[, ]
Permalink

Windows+ActivePerl 5.10でImageMagickをインストールしたときにImageMagickが正常に動作しない不具合の対処方法をまとめました。

このエントリーは、「Movable Type 5で「サーバーに Image::Magickか、Image::Magickの動作に必要な他のモジュールがインストールされていません。」となる事象について」から、さらに追跡調査したものです。

実験環境は次の通りです。

  • Windows XP Professional Service Pack 3(2台)
  • ActivePerl 5.10.1 Build 1006
  • ImageMagick 6.5.5-5 Q8/ImageMagick 6.5.6-10 Q8/ImageMagick 6.5.9-1 Q8(5.10.1 Build 1006に対応する最初のバージョン・途中のバージョン・最後のバージョンで実験)
  • Movable Type 5.02

PerlMagickは、前回はppmコマンドでインストールしましたが、今回はImageMagickに同梱されているものをそのまま使用しました。

ImageMagickの過去バージョンは以下のリンクからダウンロードできます。

Main Site » Mirror » image_magick

1.問題点

ImageMagickをインストールしているにもかかわらず、次のようにダッシュボードに「Image::Magickが設定されていません。」というメッセージが表示されます。

メッセージが表示

この状態でアイテムをアップロードしてもサムネイルが作成されず、真っ黒な表示になります。

真っ黒な表示

サムネイルが作成されていれば、5項のキャプチャ画像のように表示されます。

2.問題の解析

詳細は割愛しますが、サムネイルが作成されない原因は、前エントリーでも記した通り、プログラム内の「require Image::Magick」というところでエラーになっているためです。

今回は、エラーの詳細を知るために、次のサンプルプログラムをコマンドプロンプトから実行しました。「1.png」はサンプルプログラムと同じフォルダに配置している、任意の画像ファイルです。

#!/usr/bin/perl
 
eval { require Image::Magick };
if (my $err = $@) {
   die $err;
}
 
my $file = '1.png';
(my $ext = $file) =~ s/.*\.//;
my %arg = (magick => lc($ext));
my $magick = Image::Magick->new(%arg);
$magick->Read($file);
my ($width, $height) = $magick->Get('width', 'height');
print $width."x".$height;

NGを確認するのであれば、最初の5行だけあればいいです。

#!/usr/bin/perl
 
eval { require Image::Magick };
if (my $err = $@) {
   die $err;
}

ImageMagick 6.5.7-9 Q8のインストール直後にサンプルプログラムを実行すると、次のように「CORE_RL_magick.dllが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。」というエラーが表示されました。

エラー1

実行後、コマンドプロンプトには次のように「指定されたモジュールが見つかりません。」というエラーが表示されました。

Can't load 'C:/usr/site/lib/auto/Image/Magick/Magick.dll' for module Image::Magick: load_file:指定されたモジュールが見つかりません。 at C:/usr/lib/DynaLoader.pm line 201.
 at test.pl line 3
Compilation failed in require at test.pl line 3.
&Image::Magick::constant not defined. The required ImageMagick libraries are not installed or not installed properly.
END failed--call queue aborted at test.pl line 5.

エラー2

別のPCで、ImageMagick 6.5.7-9 Q8インストール直後にサンプルプログラムを実行すると、こちらは「再帰が深すぎます。スタックがオーバーフローしました。」というエラーが表示されました。

Can't load 'C:/usr/site/lib/auto/Image/Magick/Magick.dll' for module Image::Magick: load_file:再帰が深すぎます。スタックがオーバーフローしました。 at C:/usr/lib/DynaLoader.pm line 201.
 at test2.pl line 3
Compilation failed in require at test2.pl line 3.
&Image::Magick::constant not defined. The required ImageMagick libraries are not installed or not installed properly.
END failed--call queue aborted at test2.pl line 5.

エラー3

なお、サンプルプログラムではなく、コマンドプロンプトからImageMagickの動作を確認する方法は以下です。すべて正常に動作すれば、imdisplayコマンド実行後にImageMagickのロゴが表示されます。ただし、Perlのrequire文は実行しないので、これが正常に実行されても、Perlを使っているツールの不具合が解消されているとは限らないようです。

ImageMagick - Install from Binary Distribution

C:¥>convert logo: logo.gif
C:¥>identify logo.gif
C:¥>imdisplay logo.gif

4.原因

「CORE_RL_magick.dll」はImageMagickのインストールフォルダ直下にあるライブラリなのですが、このライブラリが正常に参照できていないのが真の原因と推測されます。コマンドプロンプトに表示されたメッセージは、「CORE_RL_magick.dll」がみつからないことによる、二次的なエラーと思われます。

「CORE_RL_magick.dll」を正しく参照できるようにするには、環境変数が設定されていればよいと思います。ImageMagickのインストール直後は、環境変数「Path」にImageMagickのインストールフォルダが設定されていますが、インストール直後はPathが効いておらず、「CORE_RL_magick.dll」が参照できないようです。

なお、ImageMagickのインストールとアンインストールを何回か繰り返して試したところ、「CORE_RL_magick.dllが見つからなかったため~」というダイアログは表示されず、コマンドプロンプト上のエラーメッセージのみが表示されるケースもありました。

5.対処1

ImageMagick 6.5.6-10 Q8/ImageMagick 6.5.9-1 Q8については、WIndowsを再起動することで、コマンドプロンプトから利用可能になり、Movable Typeでもサムネイルが表示されました。ImageMagick 6.5.5-5 Q8では再起動してもNGのままでした。

サムネイル表示

また、ImageMagickのインストールとアンインストールを何回か繰り返して試したところ、再起動せずにコマンドプロンプトからは動作OKとなり、Movable Typeでは再起動しないとサムネイルが表示されないというケースがありました。

6.対処2

ImageMagick 6.5.6-10 Q8については、再起動を行う前に、「Movable Type 5で「サーバーに Image::Magickか、Image::Magickの動作に必要な他のモジュールがインストールされていません。」となる事象について」に記したとおり、環境変数MAGICK_HOMEを追加することで、次のようにコマンドプロンプトから動作可能になるケースがありました。

コマンドプロンプトから動作可能

7.対処3

今回は実施していませんが、ネット上ではppmコマンドでPerlMagickをインストールすることで解決しているという情報があります。

8.まとめ

ActivePerl 5.10.1 build 1006であればImageMagick 6.5.9-1との組み合わせが良好と思われます。

現在の最新バージョンであるActivePerl 5.10.1 build 1007は試していませんが、ImageMagickが正常に動作しない場合、次の順番で対処を行ってみてください。

  1. ImageMagickのバージョンは、ImageMagickに同梱されているPerlMagickのバージョンをActivePerlのバージョンに合わせ、かつ新しいものを選択(参考:ImageMagick と Image::Magick(PerlMagick) のバージョン対応
  2. ImageMagickインストール後にPC再起動
  3. MAGICK_HOMEの設定+PC再起動
  4. ImageMagickでPerlMagickを同時にインストールせずに、ppmでインストール+PC再起動

今回の実施環境では、解決できない事象には遭遇しませんでしたが、ActivePerlやImageMagickのバージョンによっては解決しない場合があるかもしれません。

最後に、今回の実施結果を簡単にまとめておきます。

インストール直後再起動MAGICK_HOME設定MAGICK_HOME設定後の再起動
6.5.5NGNGNGNG
6.5.6
(1回目)
NG-MS-DOS OK/MT NGMT OK
※再起動のみでOKとなった可能性あり
6.5.6
(2回目)
MS-DOS OK/MT NGMT OK--
6.5.9OK---
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