6が自分のページに xbbs を導入しようと四苦八苦みたいな.
もともと自分の環境で使うことだけを考えててきとーに作っちゃったプログラムだから,
あまり流用がしやすいようにはできてない,とか言い訳(ぉ
はいウソです,他の環境でも動かせられるように作ったつもりですええ (;_;)
動かなかった原因その1.
@INC
に '.'
が指定されてなかった.
xbbs2.cgi は,内部で "CGI_Lite.pm"
と "jcode.pl"
を呼んでるんだけど,
これらのファイルを探す PATH は,環境変数 PERLLIB(PERL5LIB)で定義されて,
その定義が分解されて配列変数 @INC に格納されるわけだ.
で,うちのプロバイダ( Internet-WIN )では,
なぜか @INC に初めから '.'
が入っているので,
"jocde.pl"
等は "xbbs2.cgi"
と同じディレクトリに入れておけば問題なかった.
しかーし,biglobe のサーバの設定では,'.'
が定義されていなかったのだな.
よって拡張モジュールが読み込めず,POST された情報の変換や日本語文字コードの変換に失敗し,
動作しなかった.
原因その2.
ディレクトリ末尾に '/'
がついて指定されてた.
あと指定ディレクトリ名もちょっと違ってた.
これはまぁ使う人の設定ミスといえばミスなんだけど,
最初の分は,その程度のチェックもしないプログラムに問題があるのかも.ドンマイ.
ディレクトリ名がちょっと違うとかの話で「相対パスにしよ~ぜ~ (;_;)」と言ってたけど,
そりわできませぬ.
cgi の置かれる位置は httpd の種類によっても設定によってもぜんぜん違うし,
cgi がプロセスとして動いた時に pwd がどこになってるかってのも,
決まってるのかもしれないけど先の理由により汎用性のある方法が思い付きません.
ていうか,できないことはないんだけど,
なるべくモジュールをリンクしない現在の方針では,そこまでしたくない(笑)