• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Internal Server Error)

Internal Server Error

このQ&Aのポイント
  • The server encountered an internal error or misconfiguration and was unable to complete your request.
  • シンタックチェックはOKです。パーミッションはcgiフォルダは:705 cgiファイルは:700 他のパーミッションも確認しています。-wオプションをつけてもそれ以上のものは表示しません。
  • 原因場所が判らないので仕方なく読み込んだところで表示するサブルーチンを設定し、原因場所を特定しようとしました。サブルーチンの部分が読み込まれ表示されれば、そこまでは正常と判る様にしてあります。しかし、プログラムの最初の部分においても、上記のエラーがでます。こういう時の原因を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.5

まずは、「Hello,World」を表示する単純なスクリプトで動作確認をしてみてはいかがでしょうか。 それで現象が同じならオペレーションか環境に問題があるという「切り分け」が出来ます。 また、バイナリモードで上がったかどうかは、上がったものをダウンロードしてもわかりません。 FTPソフトをチェックしてみてください。

santa005
質問者

お礼

アドバイスの御陰で原因を特定できました。サブルーチンで引数の括弧がいらないのにつけていました。まだまだ基本的なところで間違ってしまい、勉強し直します。この度は有り難うございました。

santa005
質問者

補足

ご回答有り難うございます。FTPで事故ったことがありませんでしたので、簡単に考えていました。今回関連あるデータを全てバイナリーモードで、アップロードし直しました。そして、単純なスクリプトで動作を確認しました。結果は問題なく表示しました。やはりプログラムミスか同時にインストールしているモジュール関係が問題かと絞り込めてきました。以前問題なく動いていましたが、今回たまたまテキストの一部を変更してテストしたら動かなくなっていたので、原因を探っていました。プログラムに関係したところは変更していないので、不思議です。ほとんど同じプログラムを他のサーバーでは問題ないのですが。

その他の回答 (4)

  • mflow
  • ベストアンサー率63% (42/66)
回答No.4

cgiファイルのパーミッションを705にしてみたらどうですか?もしくはフォルダ、cgi共に755にしてみてください。

santa005
質問者

お礼

アドバイス有り難うございました。上記の通り基本的なミスでした。

santa005
質問者

補足

ご連絡有り難うございます。パーミッションはどちらも試しましたがだめでした。

  • mflow
  • ベストアンサー率63% (42/66)
回答No.3

suexec環境でsuexecの実行ユーザとグループと、cgiのオーナーとグループが一致していないときそのエラーが発生したことがありました。 どうぞご確認ください。

santa005
質問者

お礼

アドバイス有り難うございました。上記の通り基本的なミスでした。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

サーバーへCGIファイルを転送する際のモードは合っていますか? 以下、確認すべき点 ・テキスト/バイナリモードの設定 ・テキストモードの改行コードの変換の設定 ・テキストモードの漢字コードの変換の設定

santa005
質問者

補足

転送後のCGIファイルをダウンロードして確認しましたが、問題はないようです。なお、サーバーのエラーログは以下のようになっていました。 failed to open log file fopen: Permission denied [Mon Nov 27 18:19:08 2006] [error] [client xxx.xxx.xxx.xx] Premature end of script headers: /cgi-bin/mailForm/mailForm.cgi パーミッションを確認しましたが、最初に書いたとおりで問題ないかと思います。なおパーミッションを変えて試してもだめでした。

  • Ka-Wa
  • ベストアンサー率46% (12/26)
回答No.1

原因は多数考えられますがとりあえず初歩的なところで、 ・Perlへのパスが違っている(スクリプトの一行目の #!/usr/bin/perl ←この記述) ・読み込むライブラリのパスや、サーバ側で提供されていないライブラリをRequireしてる その他は、スクリプト内部の例外で、Exceptionをハンドリングしてないと全てInternal Server Errorになってしまって原因究明が難しくなりますね

santa005
質問者

お礼

アドバイス有り難うございました。上記の通り基本的なミスでした。

santa005
質問者

補足

>>Exceptionをハンドリングしてないと・・・ とありますが、例えばどういうことでしょうか?教えてください。

関連するQ&A