CGI-BBS > 電子掲示板 > 簡易BBS > MiniBBSver.10.31の設置方法。


カレッヂ
カレッヂ


質問者 クレヨンしんのすけ  投稿日 2/17(土) 23:41:44
初歩的なことでつまずいております。
どなたか回答を頂ければ幸いです。

system
Windows2000server + IIS5.0
ActivePerl Build519
IISでマッピングは済ませました。

デフォルトとの変更点は以下の通りです。
1. #!C:\Perl\bin\perl.exe
2. $reload = 'http://***.***.***.***/cgi-bin/minibbs.cgi?';
3. require 'D:\public_html\cgi-bin\jcode.pl'

2はどこかのページで"?"がないとダメだというのでつけました。
"?"をはずしても結果は同じでした。

3は以下のエラーが出たので、絶対パスで指定しました。
CGI Error  The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
Can't locate ./jcode.pl in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at D:\public_html\cgi-bin\minibbs.cgi line 154.


このままでアクセスすると、
「エラー
データが読み出せません.
ブラウザの[戻る]ボタンを押して前の画面に移動してください.」
と表示されます。
また、DOSからアクセスすると起動はしました。

試しに、
#!C:\Perl\bin\perl.exe
print "Content-type: text/plain\n\n";
print "test";
というスクリプトを/cgi-bin/ において実行したところ、
うまく表示されました。

もし、原因がわかる方がいらっしゃいましたらご一報おねがいします。
回答者 いのちゃん  [削除]  投稿日 2/18(日) 13:29:01
>Windows2000server + IIS5.0
同じ環境で無いので分かりませんが当方はWindows98で設定して立ち上げて
おりますがWindows2000で設定に成功した例を未だに聞いておりませんが...。

どうも原因はOSにあるような感想ですがもしOSの交換が可能であればそち
らの方でテストして見るのも良いかも知れませんねぇ。それ以外に何故エラ
ーが発生しているのかの原因に見当が付きません。(/_;
回答者 まさ  [削除]  投稿日 2/18(日) 18:36:26
dataディレクトリーは作成しましたか?
あるいはそのディレクトリーの中にちゃんとファイルはありますか?

問題のエラーはファイルをopenするところで出ているので上記2点のどちらかだと思います。

しかし基本的にこのBBSはUNIX用に書かれているので、これをWindowsで動かすとなると
若干の修正が必要ですがそれも済んでいますか? しかしこれはエラーとは直接関係ないと思い
ます。
回答者 上沼羊相談員  [削除]  投稿日 2/18(日) 18:56:09
エラーメッセージを素直に信じるのが妥当だと思います。
質問者 クレヨンしんのすけ  [削除]  投稿日 2/19(月) 12:29:06
レスありがとうございます。

/data/data.cgi
は既に作成しております。

また、FTPdの起動はしてないので、パーミッションは設定しておらず、
アクセス制御でeveryone(Full control)にしています。

/data/data.cgiの存在以外に考えられる原因はありますか?
また、Windows用にソースを書き替えるとすれば、どこを書き換えればいいのですか?

よろしくお願いします。
回答者 まさ  [削除]  投稿日 2/19(月) 12:51:57
上述のエラーはスクリプトの中にいたるところにあります。
if (!open(READ,"$tmp_dir\/$file")) { &error('エラー','データが読み出せません.'); }
上のようなかたちをしているので、わたしならどの個所でエラーが出ているか特定するために
番号をふります。
if (!open(READ,"$tmp_dir\/$file")) { &error('エラー','1:データが読み出せません.'); }
こんな感じですね。

もうひとつ。
IISはわたしもだいぶ以前に使っていましたが、その時、どうも相対パスを上手く認識して
いなかったようなので、わたしはIIS上では全て絶対パスで記述していました。
おっしゃっているように
require 'D:\public_html\cgi-bin\jcode.pl';
こんな感じですね。

つまり同じように
$tmp_dir = './data';

$tmp_dir = 'D:\public_html\cgi-bin\data';
にすれば上手くいくような気がします。
質問者 クレヨンしんのすけ  [削除]  投稿日 2/19(月) 16:20:14
$tmp_dir = 'D:\public_html\cgi-bin\data';
に変更するとうまくいきました。

マスターキー入力の画面が出たときは、
ちょっと感動でした。
親切に教えて頂いてありがとうございます。


あと、[New]マークと[MiniBBS]のマークに、×印が出ます。
別にほっといてもいいとは思いますが、気になってしまいます。
何か対策があれば、ご一報くだされば幸いです。
回答者 まさ  [削除]  投稿日 2/19(月) 16:35:12
>あと、[New]マークと[MiniBBS]のマークに、×印が出ます。
>別にほっといてもいいとは思いますが、気になってしまいます。
>何か対策があれば、ご一報くだされば幸いです。

2. $reload = 'http://***.***.***.***/cgi-bin/minibbs.cgi?';
こう言う風に修正したとありますが、これを
2. $reload = 'http://***.***.***.***/cgi-bin/minibbs.cgi';
と元に戻したらいいと思います。
質問者 クレヨンしんのすけ  [削除]  投稿日 2/19(月) 17:11:24
すばやいお返事ありがとうございます。

$reload = 'http://***.***.***.***/cgi-bin/minibbs.cgi';
に修正したところ、[miniBBS]は表示されましたが、
[New]はまだ×印のままです。
どこをかえればいいのでしょう?

回答者 まさ  [削除]  投稿日 2/19(月) 19:31:08
確かにそうなりますね。

今試した環境は
Win95 + Apache1.3.12 + ActivePerl Build522
です。

これでも同じ現象になります。
スクリプトの記述は両者で全く同じです。
何故そうなるのかわかりません。

いっそのことNewという画像を用意して、そのまま素直に表示させればどうでしょう。
わたしならそうします。

申し訳ないですが、これ以外の回答はわたしにはわかりません。
質問者 クレヨンしんのすけ  [削除]  投稿日 2/19(月) 20:12:26
わざわざ試して頂いてすいません。

minibbs.cgiはサブルーチン(sub New)で画像を作成しているようですね。
(違ってたらごめんなさい。)

おっしゃるようにNewの画像を用意して表示させようと思いますが、
417&442行目の"print"文でNewを表示さているということはわかるのですが・・・。

print "(<img src=\"$reload\?new\" alt=\"New!\" width=22 height=10> (417)

仮に画像ファイル"New.gif"を /cgi-bin においた場合、
img src=\"$reload\?new\"
 ↑どのように書き換えたら良いでしょうか? 

よろしくおねがいします。
回答者 まさ  [削除]  投稿日 2/19(月) 20:18:02
>print "(<img src=\"$reload\?new\" alt=\"New!\" width=22 height=10> (417)

>仮に画像ファイル"New.gif"を /cgi-bin においた場合、
>img src=\"$reload\?new\"
> ↑どのように書き換えたら良いでしょうか? 

この場合は以下でよろしいかと。
print "(<img src=\"./new.gif\" alt=\"New!\"> 略

画像を用意する場合は、サイズに気を付けた方がよさそうですね。
質問者 クレヨンしんのすけ  [削除]  投稿日 2/19(月) 21:10:31
ばっちり成功しました。

まささんを始め、御返事を頂いたみなさま、ありがとうございます。
みなさんのご協力に感謝します。



このページは終了したので返信(回答)は書きこめません

Web裏技