• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:自前サーバでCGIを~)

自前サーバでCGIを実行する際のInternal Server Errorへの対処方法

このQ&Aのポイント
  • 自前サーバでCGIを実行する際に、ブラウザからCGIファイルを起動するとInternal Server Errorが発生してしまう問題が発生しています。コマンドラインからの実行では問題なく動作するため、Perlの実行ファイルが存在していることは確認できています。
  • CGIファイルに正しいPerlのパスを記載しても、ファイルが実行されない問題が発生しています。Perlの実行ファイルがコマンド化されない理由が分からないため、解決方法を探しています。
  • 上記の問題を解決し、自前サーバでCGIを実行する際にInternal Server Errorが発生しないようにする方法を教えてください。

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

  • ベストアンサー
  • leiqunni
  • ベストアンサー率27% (8/29)
回答No.4

パスの設定は使っているシェルによるので、 参考URL等を参考にしてください。 簡単に書くとsh系(bash等)は.bachrcのPATHの行に「:」で区切って 「./」を付け足します。

参考URL:
http://x68000.startshop.co.jp/~68user/unix/environment.html
Yuya_Tachibana
質問者

お礼

 ちょっとパッと見では分かんないですね(汗)。 でも、そんな難しいことじゃないと思うので参考URL頼りでやってみます。  一旦スレッドを終えます。  続きのような質問をしたときには、またぜひよろしくお願いします。  どうもありがとう御座いました。

その他の回答 (3)

  • leiqunni
  • ベストアンサー率27% (8/29)
回答No.3

> 直後に「text.cgi」と入力しても、コマンドが見つかりませんと > 言われました。どうやら違ってたみたいです。残念。 たいていの初期設定ではカレントディレクトリでにパスがとおってません。 カレントディレクトリのコマンドを実行することを明示して、 ./test.cgi と打ってみてください。 あとCGIソースが間違っていても Internal Server Error がでます。

Yuya_Tachibana
質問者

補足

 仰るとおりCDを明示して「./text.cgi」としたら、ちゃんと実行してくれました。 この時点で、CGIファイルのコマンド化が成功したわけなんですが、どうやったらCDを明示する「./」を入れない、つまりパスを通せるようになるんでしょうか?  ちなみに、まだブラウザでは完全にISErrorで、コマンドラインからの段階でした。  長い話ですが、よろしくお願いします。

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.2

Apacheで、そのCGIが置かれている場所は、Perl等のCGIの実行が許可されている場所なのでしょうか?  ためしに、ApacheのCGIを実行してみて下さい。  または、Apacheをセットアップしたディレクトリをみて下さい。ね。

Yuya_Tachibana
質問者

補足

CGIファイルが置いてあるところは「/home/httpd/cgi-bin/」です。  httpd.confとかいうファイルの中身を色々といじってはみました。 そこで「ScriptAlias」というものを「ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/」に設定しました。 同時に「AddHandler cgi-script .cgi」というのも設定しましたが、これではダメでしょうか?ダメなんですが(汗)。 「ApacheのCGI」というのがよく分からないんですが、それはなんですか? また、セットアップしたディレクトリを見たとして、そこに何があるんでしょうか?

  • leiqunni
  • ベストアンサー率27% (8/29)
回答No.1

そのCGIに実行ビットが立っていないのかもしてません。 chmod +x test.cgi として、実行ビットを立てて試してみてください。

Yuya_Tachibana
質問者

補足

 うーん、やってみたけれど、直前で「perl text.cgi」を行ったら実行されまして、 その後に「chmod +x text.cgi」をしたら一見無反応(プロンプトが次の行に出た)だったので恐らくできたと思われます。 直後に「text.cgi」と入力しても、コマンドが見つかりませんと言われました。  どうやら違ってたみたいです。残念。