アプリ版:「スタンプのみでお礼する」機能のリリースについて

CGIをはじめて、まだまだ初心者です。
プログラムは、MS-DOSで構文チェックして、
OKとでるのに、サーバーエラーっておかしくないですか?
もちろん、サーバは、自分のパソコンに
アパッチいれて、Perlいれて確認するんですが、
何がエラーなんでしょう・・・?
まだ、高級なCGIなど作れないので、
フリーのスクリプトをDLしてきました。
まず、構文チェックOK。
そして、Perl開いたまま、
ブラウザにアクセスします。
そうしたら、サーバーエラーとなるのです。

何を変えていったらいいのか教えて下さい。
(自分で作った簡単なアンケートフォーム
とかは成功しました)

A 回答 (5件)

自作はOKということは、フリースクリプトの実行の仕方に問題があると言うことだと思います。


ダウンロード元の注意書き等はきちんと読まれましたか?
ブラウザからのアクセス時は「その他」からの実行になりますので、実行権のあたりが怪しいのではないかと思うのですが…。
またはログを書き込む様なスクリプトの場合はディレクトリの書き込み権限の可能性もあると思います。
    • good
    • 0
この回答へのお礼

お返事非常に遅くなってしまい、申し訳ありません。
しばらく、パソコンから遠ざかっていました。
CGIは、ややこしい。
結局、初歩的なミスなんですが、
スクリプトによっては、cgi-binに入れなくても動く
ものや動かないものがあったのです。
これにはまいりました。
無精者ですが、これからもよろしくお願いします。

お礼日時:2002/06/19 14:14

サーバーエラーとは、Internal server Errorですよね。


構文も正しいとすれば、最初の一行目を確認してみてください。
大体は、
#!/usr/bin/perl
#!/usr/local/bin/perl
だと思いますが、公開するHPスペースのサーバー注意事項などに記載されていると思いますので、確認してみてください。
    • good
    • 0
この回答へのお礼

お返事非常に遅くなってしまい、申し訳ありません。
しばらく、パソコンから遠ざかっていました。
CGIは、ややこしい。
結局、初歩的なミスなんですが、
スクリプトによっては、cgi-binに入れなくても動く
ものや動かないものがあったのです。
これにはまいりました。
無精者ですが、これからもよろしくお願いします。

お礼日時:2002/06/19 14:14

File Not FoundでもPermissionでもなければスクリプト・エラーでしょう。

怪しい部分をコメントアウトしてみるのがいいでしょう。"@"にエスケープが必要だったりとか。(\@になる)あとはロックディレクトリの書き込みエラー、データファイルのパーミッションかも知れません。
いずれにせよ、ソースを見なければ何とも言えません。

この回答への補足

ロックディレクトリの書き込みエラーも
普通にサーバーエラーとなるのですか?
本には、windowsでは、ロックはだめとありました。
ロックしたままってことですよね。
エラーと言うことは?
すなわち、サーバーエラーはひっくるめて
表示されるってことでしょうか?

補足日時:2002/03/05 18:03
    • good
    • 0

そのスクリプトが、書き込みをしくじったときのフォローをしているかどうかでしょう。

スクリプトはロックディレクトリが無ければ作り、有れば何回かループして止まるはずです。作れなかったときのフォローができていなければサーバーエラーが出てもおかしくはないでしょう。そこいらをコメントアウトしてみてはいかが?
    • good
    • 0
この回答へのお礼

お返事非常に遅くなってしまい、申し訳ありません。
しばらく、パソコンから遠ざかっていました。
CGIは、ややこしい。
結局、初歩的なミスなんですが、
スクリプトによっては、cgi-binに入れなくても動く
ものや動かないものがあったのです。
これにはまいりました。
無精者ですが、これからもよろしくお願いします。

お礼日時:2002/06/19 14:15

>プログラムは、MS-DOSで構文チェックして、


>OKとでるのに、サーバーエラーっておかしくないですか?

いえ、いろんなところでエラーはでます。何らかの原因でスクリプトがとまってしまい、ブラウザに十分なヘッダーが送れなかったときにInternal Server Errorがでます。
エラーの特定にはApacheのエラーログも参考になります。が、Premature End of Scriptだと、特定は難しいです。

フリーのスクリプトをお使いとの事なので、多分ディレクトリやファイルの読み書き時のエラーには対処していると思います。この場合経験上多いのが、requireしているスクリプトが見つからないとかではないでしょうか?
何かrequireしているスクリプトがありますか?その時はまた補足でお知らせください。

#*********私の使うエラー箇所を見つける最後の手段************
print "Content-type: text/html\n\n";
print "ここまでOK";
exit;
#***********************************************************
この3行をスクリプトの頭の方に置いて(もちろん#!/bin/perlの宣言文のあと)スクリプトをブラウザからたたき、ブラウザに“ここまでOK”が表示されたら、少し下の行間に挿入してたたき、またOKだったらまたずらしてたたき、というような地道な作業で見つけることはできます。慣れたら一番怪しいところから確認したり、スクリプトの後ろから始めたりもできます。
あまりにも地道なため、自分ではほんとに最後の手段にしてますが、これでエラーが見つからなかったことはありません。
いざとなったら、どうぞ。
    • good
    • 0
この回答へのお礼

お返事非常に遅くなってしまい、申し訳ありません。
しばらく、パソコンから遠ざかっていました。
CGIは、ややこしい。
結局、初歩的なミスなんですが、
スクリプトによっては、cgi-binに入れなくても動く
ものや動かないものがあったのです。
これにはまいりました。
無精者ですが、これからもよろしくお願いします。

お礼日時:2002/06/19 14:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!