フリーの画像掲示板CGIと言えば、[KENT-WEB:Joyful Note]。
それに更に、Exif情報表示やサムネイル作成機能、認証機能などの有用な機能を豊富に拡張したものが、[Cachu's Page:Exif 情報対応版 Joyful Note] 以下 joyfulexif と呼ぶものです。
これを使わない手はない、ということで、@nifty の [@homepageサービス] 環境下に入れてみました。
しかし nifty が用意しているサーバは、いろいろと普通じゃないので苦労します。
でも nifty でもやろうと思えばいろいろできるんだなぁと思ったので、履歴をまとめました。
サーバ環境 @homepage:
niftyサーバ名称 = hpcgi3.nifty.com, homepage3.nifty.com
サーバのPerl = Ver. 5.00503 (2005/06/02現在)
サーバの種類 = Solaris
今回使用したCGI:
[Cachu's Page:joyfulexif] = Ver. 2.3e
[菅処:repng2jpg] = Ver. 1.0.4 sparc_solaris_static版
[perl.com:perlソースコード] = Ver. 5.005_03
以下、このバージョンを前提とした話になります。
Step1. joyfulexif のインストール
基本は、[joyfulexif:README_exif.txt] に従ってインストールします。
とりあえず最低限、以下の設定だけは行います。
$title
$homepage
$pass
$ScriptURL
Step2. Perl スクリプトの冒頭のパスを書き換える
いわずもがなですね。
参考:[@nifty:自作CGI利用方法]
書き換え:
↓
対象:
./blacklist_util.cgi
./joyful.cgi
./rss_joyfulexif.pl
./showexif.cgi
./util/which.cgi
Step3. 画像などを /homepage/ ディレクトリに移動する
nifty では、/cgi-bin/ 以下にある画像や .html .css .js などのファイルは表示を許可されないため、これらを /homepage/ 以下に引っ越す必要があります。
移動例:/cgi-bin/joyfulexif/joyful.css
/cgi-bin/joyfulexif/img/
/cgi-bin/joyfulexif/img/thumb/
/cgi-bin/joyfulexif/img/clip.gif
/cgi-bin/joyfulexif/img/home.gif
/cgi-bin/joyfulexif/img/soon.gif
↓/homepage/joyfulexif/ [707]
/homepage/joyfulexif/joyful.css [604]
/homepage/joyfulexif/img/ [707]
/homepage/joyfulexif/img/thumb/ [707]
/homepage/joyfulexif/img/clip.gif [604]
/homepage/joyfulexif/img/home.gif [604]
/homepage/joyfulexif/img/soon.gif [604]
パーミッション(属性)の設定も忘れずに。
また、上記の移動に合わせて、joyfulexif 内のパス設定を変更します。
変更例:
$gif_path = "./img/";
$imgdir = './img/';
$imgurl = "http://www.xxx.xxx/~xxx/img/";
$style_file .= "<link rel=\"stylesheet\" href=\"joyful.css\" type=\"text/css\">\n";
$style_file = "<link rel=\"stylesheet\" href=\"joyful.css\" type=\"text/css\">\n";
↓$gif_path = "/homepage/joyfulexif/img/";
$imgdir = '/homepage/joyfulexif/img/';
$imgurl = "http://homepage?.nifty.com/xxx/joyfulexif/img/";
$style_file .= "<link rel=\"stylesheet\" href=\"http://homepage?.nifty.com/xxx/joyfulexif/joyful.css\" type=\"text/css\">\n";
$style_file = "<link rel=\"stylesheet\" href=\"http://homepage?.nifty.com/xxx/joyfulexif/joyful.css\" type=\"text/css\">\n";
注意:
左の数字は Ver.2.3e の場合の行番号。変動可能性あり。
"http://homepage?.nifty.com/xxx/" の部分は自分の環境に合わせて。
Step4. localtime() 関数を利用可能にする
ここまでが基本ですが、これだけでは「実行エラー (500:Internal Server Error)」になってしまいます。
理由は、nifty の素の環境では localtime() 関数が使えないからです。
そこで、Time::Local モジュールを追加してあげます。
すごい参考:[日曜プログラマの小道具箱:perl moduleをniftyで使う]
この方法なら、nifty で使えないものがほぼなくなりそうな勢いです。
はっきり言って、上のサイトさえ見れば全部わかります。
だから流れだけ書きます。
- サーバの Perl バージョンをチェック
- そのバージョンにあった perl のソースを [perl.com] から取得
- ソースから、Local.pm および関係のファイルを選んでサーバの /cgi-bin/libs/ 以下に置き、パーミッションを設定
その後、joyfulexif の構成ファイル中、Time::Local を使用しているものに以下の記述を追加します。
use Time::Local;
↓BEGIN { push(@INC, "/cgi-bin/libs"); }
use Time::Local;
対象:
joyful.cgi
rss_joyfulexif.pl
ここまでで、とりあえず joyfulexif が動作を開始すると思います。
それでも動かない場合は、[joyfulexif:README_exif.txt] や上に挙げた各サイトを再度チェックしてください。
Step5. サムネイル化機能を利用可能にする
やっぱりこの機能も欲しいですね。デフォルトでは画像を全部読んで表示サイズだけ擬似的に小さく変更するだけだから、重くって仕方ありません。
nifty のサーバには ImageMagick や PerlMagick が用意されていないため、基本的にはサムネイル化ができません。
すごい参考:[鉄の穴:Exif 情報対応版 Joyful NoteをImageMagickとPerlMagickが使えないサーバーでサムネイル画像の作成を可能にする方法]
これも、上のサイトさえ見れば全部わかります。
だから流れだけ書きます。
- [菅処:小物たち] から resize.zip を貰ってきて check.cgi を動かす
- check.cgi の結果を分析。nifty の場合は repng2jpeg を使えばよいとわかる
- 同じサイトから repng2jpeg を貰ってきて、sparc_solaris_static 版をサーバに置き、パーミッションを設定
- 以下のように joyful.cgi の設定を変更
$ThumbMake = -1;
↓
$ThumbMake = 4;
$ImgResize::repng2jpeg = './repng2jpeg';
Step6. index.html の代わりに index.cgi を置く
おまけです。
何度も言うように、nifty では /cgi-bin/ 以下に .html やら画像やらを置いても表示できません。
よって joyfulexif に付属の index.html をそのまま使っても動かないので、代わりに index.cgi を置いておくとよいでしょう。
index.cgi の例:
print <<"EOM";
<html>
<head>
<meta http-equiv=\"content-type\" content=\"text/html; charset=Shift_JIS\">
<meta http-equiv=\"refresh\" content=\"0;URL=joyful.cgi\">
<title>掲示板へ移動中</title>
</head>
<body>
<a href=\"joyful.cgi\">自動的にジャンプしない場合はクリック</a>
</body>
</html>
EOM
exit;
ひとまず以上です。
あとは好みに応じて設定を変更すればよいでしょう。
ど〜してもエラーが出て動かない、という場合は、[joyfulexif:FAQ] や [KENT-WEB:FAQ]、 [はじめてのCGI@nifty] などを参考に頑張ってみてください。
「絶対私じゃ無理」、「絶対これ動かない」、「絶対 nifty の陰謀だ」 というようなことは絶対にありませんから。
最後に。
素晴らしいスクリプトと情報を無償で公開して下さった、各スクリプト作者および先駆者の方々に、感謝いたします。