システムのトラブル

【2014年2月17日】Windows7にImageMagickをインストールでトラぶりました

今年4月からのWindows XPサポート終了に伴い、2年前から徐々にWindows7/64bitにWeb開発環境を移行してきました。

#
# Webサーバ:Apache
# データベース:MySQL
# 開発言語:Perl、PHP、JavaScript、HTML
# 画像処理ライブラリ:ImageMagick
#
# 他、いろいろ
#

事務系は既に2年前に移行済み。

本格的にWeb開発環境移行を進める中で画像処理ソフトウェアImageMagick(64bit版)の正常インストール後の、Web環境での動作チェックに時に、はまりました。

#
# Apache2は32bit版、インストール済み。動作も確認済み
# ActivePerl 64bit版インストール済み。動作も確認済み
#

インターネットを介して、ことごとく調査し試行しましたがNG。
途方に暮れました。

perlのCGIプログラム(XXXXXXXX.cgi )で以下のコードでInternal Server Errorが発生していました。
Windows XPの開発環境では動作していたプログラムです。

————————————–
use Image::Magick;
————————————–

Apache2エラーログは以下の通りでした。

————————————–
[Mon Feb 17 16:27:12 2014] [error] [client 127.0.0.1] Premature end of script headers: XXXXXXXX.cgi, referer: http://localhost/~XXXXXXXX/cgi-bin/index.cgi

[Mon Feb 17 16:27:12 2014] [error] [client 127.0.0.1] Can’t locate loadable object for module Image::Magick in @INC (@INC contains: C:/usr/local/site/lib C:/usr/local/lib .) at ./lib/XXXXXXXX.pl line 22.\r, referer: http://localhost/~XXXXXXXX/cgi-bin/index.cgi

[Mon Feb 17 16:27:12 2014] [error] [client 127.0.0.1] Compilation failed in require at ./lib/XXXXXXXX.pl line 22.\r, referer: http://localhost/~XXXXXXXX/cgi-bin/index.cgi

[Mon Feb 17 16:27:12 2014] [error] [client 127.0.0.1] BEGIN failed–compilation aborted at ./lib/XXXXXXXX.pl line 22.\r, referer: http://localhost/~XXXXXXXX/cgi-bin/index.cgi

[Mon Feb 17 16:27:12 2014] [error] [client 127.0.0.1] Compilation failed in require at I:/home/XXXXXXXX/public_html/cgi-bin/XXXXXXXX.cgi line 22.\r, referer: http://localhost/~XXXXXXXX/cgi-bin/index.cgi

[Mon Feb 17 16:27:12 2014] [error] [client 127.0.0.1] &Image::Magick::constant not defined. The required ImageMagick libraries are not installed or not installed properly.\r, referer: http://localhost/~XXXXXXXX/cgi-bin/index.cgi

[Mon Feb 17 16:27:12 2014] [error] [client 127.0.0.1] END failed–call queue aborted at I:/home/XXXXXXXX/public_html/cgi-bin/XXXXXXXX.cgi line 22.\r, referer: http://localhost/~XXXXXXXX/cgi-bin/index.cgi
————————————–

モジュールは正常にインストールされているし、PPM(Perl Package Manager)でもImage-Magickとして認識されています。

#
# PPMのPrefarennceのAreasタグを開いたところ
# ImageMagickだけはsite、他は全てperlと定義されていました。
# これが解決のヒントの一つになっていたことが後で判明。
#

1日悩みました。

/usr/local/site/lib には/perl64/site/lib/Imageをコピーしました。
これでもダメ。

ImageMagickのモジュールMagick.pmのコードを眺めていましたら

&Image::Magick::constant not defined. The required ImageMagick libraries are not installed or not installed properly.

を出力している箇所に注目しました。

その関数はsub AUTOLOAD。

これで、ピンときましたね。

/usr/local/lib/autoに他のperlモジュールインストールされているのに対し、

/usr/local/site/lib/autoに入るべきImageMagickのperlモジュールがインストールされていないではありませんか。

ここに、
/perl64/site/lib/auto/Imageをコピーしました。

さて、開発環境の画面でマウス左クリック、クリック。

見事、Image::Magickを利用したCGIプログラムが動作しました。

ハマりましたね、「このautoには」。

対策時間、7時間。

コンピュータに関わる仕事は、正に謎解き、執念に尽きる数学の解法と同じ。
だから、楽しい。

【2012年2月25日】またPIE.htcの動作ではまってしまいました

JavaScriptによってIE6~8にCSS3の表現をさせる「PIE.htc」がローカル環境で動作したので、

レンタルサーバにアップしましたら、見事に動作しませんでした。

何故?

なんで?

悩みました。

以前、同じように悩んだ事を思い出しました。

そうだ、京都行こう、じゃないけれど、

過去のブログ記事を見て思い出しました。

サーバによっては、.htaccessファイルに「AddType text/x-component .htc」の1行を追記しないと、動作しないこと。

解決!!!!

【2012年1月17日】レンタルサーバでCSS PIEが動作しなかったので

IEでもCSS3で角丸ができるPIE.htcを導入し、ローカルな環境でWebサーバ(Apatch)を立ち上げて実証したところ

問題なくIE7で角丸を表現できました。

そのまま、レンタルサーバWADAXにアップしたところ角丸を表現できませんでした。

「CSS3 PIE」がうまく動かなかった時の対処法

なるサイトを見つけ、

下記のようにhtaccessにMIMEタイプを追加する

AddType text/x-component .htc

ことで、問題クリア。

ほっ。

【2011年12月4日】Webシステムで格安にPDF出力実現はだめでした

とあるお客様へのWebシステムご提案のひとつ「帳票のPDF出力」。

これを格安に実現しよう思いましたが、結果NGでした。

WebシステムでPDF出力するには、サーバサイド、ローカルPCで実現する方法が考えられます。

(1)サーバサイドで実現するには、サーバ側にPDFライブラリをインストール(make)して、Webサーバ・ソフトをリスタートしなければなりません。

  さらに、日本語フォント(true type系)のインストールや、PDFライブラリ使用ライセンスが必要になります。(1サーバあたり20万円弱)

  この環境が整えれば、サーバサイド側のプログラムでPDFを出力できます。

  共用レンタルサーバでは、サーバサイド作業の作業ができない制約がありますので、実現できません。
  専用サーバ(年間20万円強)なら可能性はありそうです。

(2)ローカルPCで実現するには、Javascriptのライブラリを利用します。

  ただ、ここ2、3年で開発されたものですが、日本語処理がNGであり、Webブラウザにより動作も不安定です。

 ※試しましたが、小生PCの環境では動作できませんでした。