カレッヂ |
質問者 futa
投稿日 1/9(火) 01:11:23
CGIの勉強にとまずは以下のようなただHTMLを表示させるスクリプトを書いてみました。 (ファイル名を仮に「test.cgi」) #!/usr/local/bin/perl5(ここは自分のサーバーでの設定を調べました) print "Content-type: text/html\n\n"; print "<html><body>\n"; print "hi!\n"; print "</body></html>\n"; これをコマンドプロンプトで「perl test.cgi」とすると Content-type: text/html <html><body> hi! </body></html> と一見成功しているかのように思うのですが ブラウザで表示すると「HTTP 500 内部サーバーエラー」となってしまいます。 ちなみに、パーミッションはtest.cgiは755に、test.cgiのあるディレクトリは777に設定してあるのでこちらは問題ないはずですし・・・悩んでいます。 どなたか考えられる原因をお教えください。 よろしくお願いします。 |
回答者 まさ
[削除]
投稿日 1/9(火) 13:15:32
正常なように見えますね。 一度shellで「perl -wc test.cgi」とやってみて下さい。 これで文法チェックができます。 Syntax OKとだけ出れば、OKなのですが、困りますね。。。。 |
回答者 まさ
[削除]
投稿日 1/9(火) 13:24:04
ちょっと思ったのですが、CGIを動かす環境は、プロバイダーによって 決まっている場合があり、それ以外、自分で作ったディレクトリーなどでは 動かない場合があります。 そのようなことはないでしょうか。 あるいは.htaccessを設定しないとCGIが動かないとか? |
質問者 futa
[削除]
投稿日 1/9(火) 15:48:01
助言をいただきありがとうございます。 きのう投稿した時点で「perl -c test.cgi」はやっていて「syntax OK」と出たので 「perl test.cgi」と実行したのですが・・・。 「perl -wc test.cgi」も実行してみました。 やはり同じようにエラーはありませんでした。 ところで「-wc」と「-c」どう違うんですか? 手元にあるテキストでは「-c」しか書いてありませんでしたので。 ちなみに「.htaccess」とかの問題はないと思います。 今現在、ここのminibbsを使わせていただいて正常に動いていまして そのminibbsと同じディレクトリでも表示されなかったので。 予断ですが、minibbsのときはまったくperlの知識ゼロでしたので 文字コードの問題で少し苦戦しました。 しかし、これで原因はまたわからなくなってしまいました。 たぶん、今までの経験では初歩的な?ミス?なのかなあとか・・・ |
回答者 まさ
[削除]
投稿日 1/9(火) 16:57:46
-wのオプションはWarningレベルのチェックです。 -cではSyntaxチェックしか行いませんが、組み合わせることにより、 Syntax、Warningとチェックを行ってくれます。 だいたい原因がわかりました。 shellで動作して、ブラウザーからはエラーが出る原因は、FTP転送 するときにバイナリーで行っているからです。 アスキーにすれば正常に表示されるはずですよ。 |
質問者 futa
[削除]
投稿日 1/9(火) 18:51:13
「-wのオプション」の説明ありがとうございました。 今手元に自分のパソコンがある環境ではないので バイナリ転送してしまったのか確認できません。 (家に帰ってから見てみます) 今はLAN環境なので、自分のディレクトリに直接 (「test.cgi」の内容をコピーして) 別のファイル名にして試してみましたが やはりブラウザでは表示できませんでした。 このようにすれば、FTPの転送モードは関係なくなると思ったので やってみたのですが・・・。 コピー&ペーストがいけなかったのでしょうか。 ほんと迷惑かけてすいません。 |
質問者 futa
[削除]
投稿日 1/11(木) 19:45:08
自分で書いた質問は解けました。 FTPの転送モードではなく、 どうも「改行コード」にあったらしいです。 ローカルニュースに投稿したら教えてくださる方がいました。 使っているサーバーがUNIXなので、 LFにしないと表示できないらしいです。 手元にあるテキストにサーバーのOSに「改行コード」を合わせないけないなんて 書いてなかった気がするのですが・・・。 ブラウザからデータを渡すときに「文字コード」が問題になるのは知っていますけど。 とにもかくにも、まささんどうもありがとうございました。 これでやっとやりたいことが始められます。 |
返信(回答)する
Web裏技 |