UNIXやLinux: 2010年4月アーカイブ

MovableType って、ImageMagick の Perl モジュールが入ってなきゃ、GD モジュール使うのかと思ってたけど、初期ログイン時に、

Image::Magickがインストールされていないかまたは正しく設定されていないため、Movable Typeのユーザー画像機能を利用できません

って怒られた。

そうですか。仕方ないので入れましょう。ま、CPAN モジュール使ってインストールすりゃ一発じゃけえね・・・と思ったんだけど、いきなり、

...
make: *** [Magick.o] エラー 1
  /usr/bin/make  -- NOT OK
Running make test
  Can't test without successful make
Running make install
  make had returned bad status, install seems impossible

と、エラーで終わっちゃいましたよ、インストール。

入ってる ImageMagick 本体のバージョンが 6.2.8 で、Perl モジュールは 6.5.9 狙いなので、そのせいかねえ・・・
今の ImageMagick は RPM パッケージでインストールされているようなので、

yum info ImageMagick

で、現行バージョン調べてみたら、このサーバ OS 用の最新バージョンは 6.2.8.0 だった。つまり、最新パッケージのバージョンが更新されてないわけだ。

仕方無いので、

yum remove ImageMagick

でパッケージを削除して、ソースから Perl モジュールに合ったバージョンのものをインストールすることにした。

ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.5.9-10.tar.gz

を取ってきて、configure して make & make install。
問題なく本体のインストールは終了。ldconfig 実行してライブラリのパスを通したら、もう一度 CPAN モジュールでインストール実行。

# perl -MCPAN -e shell
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')

cpan> install Image::Magick
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
  Database was generated on Tue, 20 Apr 2010 17:27:01 GMT
Image::Magick is up to date.

あれれ?何か、ものすごくあっけなく終わっちゃったんですけど?(^^;
ホンマに大丈夫かいな?

心配だったので、簡単なプログラム作って実験。

# cat > image_magic_test.pl
use Image::Magick;

{

        my $new_path    = "new_file.gif";

        my $path        = <STDIN>;
        chomp $path;

        my $image = Image::Magick->new;
        $image->Read("$path");

        my($now_x, $now_y) = $image->Get('width', 'height');

        print "SIZE X=$now_x Y=$now_y\n";

        my $max_x       = 1000;
        my $max_y       = 1000;

        $image->Resize(
                width  => $max_x,
                height => $max_y,
                blur   => 1.2
        );

        $image->Write("$new_path");

}
^D
# perl image_magic_test.pl
/var/www/icons/image2.gif
SIZE X=20 Y=22
# ls -la new_file.gif
-rw-r--r-- 1 root root 321404  4月 22 12:30 new_file.gif
# perl image_magic_test.pl
new_file.gif
SIZE X=1000 Y=1000

うむ。20x22 の大きさのアイコンを指定して、1000x1000 の大きさにサイズ変更して出力するプログラムなんだが、ちゃんと動いたな。

これで大丈夫でありましょう。

某ホスティングサーバはコントロールパネルで BASIC 認証用の .htaccess と .htpasswd を生成するようになっているが、cgi-bin 以下のディレクトリは生成先として指定出来ない。
どうしても cgi-bin 以下に BASIC 認証をかけたいので、手動でどうにかしてくれという依頼がお客さんよりあったので対応したが、ちょっとハマってしまった。

うちのサーバ(CentOS)上で、

$ htpasswd -cb .htpasswd hogehoge hogepass
Adding password for user hogehoge
$ cat .htpasswd
hogehoge:ZUb5junE4ayDa

みたいに作った .htpasswd を使って設定したのだが、正しくパスワードを入れても Authorization Required と認証エラーとなる。

元々、手動で BASIC 認証の設定を行うのを推奨してないというか、情報が少ないサーバなので調査にも時間がかかったんだけど、結局、コントロールパネルで作った .htpasswd を見つけて中を見てみると・・・

へえ、珍しく MD5 で暗号化してるなあ・・・(俺は UNIX 系のサーバに触れたのは FreeBSD が最初なので、DES より MD5 の方が好き・・・というかしっくりくるが:-P)

・・・ん?・・・もしかして、.htpasswd の暗号化は、MD5 でなきゃ駄目なの?

大概のホスティングサーバが DES(国際化 DES)でも MD5 でもOKなんだけど、このサーバは MD5 でなきゃ駄目なのかも。

ということで、

$ htpasswd -cb -m .htpasswd hogehoge hogepass
Adding password for user hogehoge
$ cat .htpasswd
hogehoge:$apr1$K3QPv/T9$KMU3gDebRA0R0fdHddjwX1

と、明示的に MD5 encryption を指定して作成した .htpasswd ファイルを使用したところ問題なく BASIC 認証が行われた。

いやあ、ほんとに、世の中色々なホスティングサーバがあるので大変だわ。(^^;

ビジネスがらみで使うサーバは、月数千円の差額なんかケチケチせずに、ssh 接続でターミナルとか使えるサーバを選んでほしいわ(^^;
そしたらトラブルの原因究明なんか一発なのに。大概ね。

このアーカイブについて

このページには、2010年4月以降に書かれたブログ記事のうちUNIXやLinuxカテゴリに属しているものが含まれています。

前のアーカイブはUNIXやLinux: 2010年1月です。

次のアーカイブはUNIXやLinux: 2010年10月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら