カレッヂ |
質問者 クレヨンしんのすけ
投稿日 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裏技 |