- ベストアンサー
自前サーバでCGIを実行する際のInternal Server Errorへの対処方法
- 自前サーバでCGIを実行する際に、ブラウザからCGIファイルを起動するとInternal Server Errorが発生してしまう問題が発生しています。コマンドラインからの実行では問題なく動作するため、Perlの実行ファイルが存在していることは確認できています。
- CGIファイルに正しいPerlのパスを記載しても、ファイルが実行されない問題が発生しています。Perlの実行ファイルがコマンド化されない理由が分からないため、解決方法を探しています。
- 上記の問題を解決し、自前サーバでCGIを実行する際にInternal Server Errorが発生しないようにする方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
パスの設定は使っているシェルによるので、 参考URL等を参考にしてください。 簡単に書くとsh系(bash等)は.bachrcのPATHの行に「:」で区切って 「./」を付け足します。
その他の回答 (3)
- leiqunni
- ベストアンサー率27% (8/29)
> 直後に「text.cgi」と入力しても、コマンドが見つかりませんと > 言われました。どうやら違ってたみたいです。残念。 たいていの初期設定ではカレントディレクトリでにパスがとおってません。 カレントディレクトリのコマンドを実行することを明示して、 ./test.cgi と打ってみてください。 あとCGIソースが間違っていても Internal Server Error がでます。
補足
仰るとおりCDを明示して「./text.cgi」としたら、ちゃんと実行してくれました。 この時点で、CGIファイルのコマンド化が成功したわけなんですが、どうやったらCDを明示する「./」を入れない、つまりパスを通せるようになるんでしょうか? ちなみに、まだブラウザでは完全にISErrorで、コマンドラインからの段階でした。 長い話ですが、よろしくお願いします。
- mnabe
- ベストアンサー率33% (427/1283)
Apacheで、そのCGIが置かれている場所は、Perl等のCGIの実行が許可されている場所なのでしょうか? ためしに、ApacheのCGIを実行してみて下さい。 または、Apacheをセットアップしたディレクトリをみて下さい。ね。
補足
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)
そのCGIに実行ビットが立っていないのかもしてません。 chmod +x test.cgi として、実行ビットを立てて試してみてください。
補足
うーん、やってみたけれど、直前で「perl text.cgi」を行ったら実行されまして、 その後に「chmod +x text.cgi」をしたら一見無反応(プロンプトが次の行に出た)だったので恐らくできたと思われます。 直後に「text.cgi」と入力しても、コマンドが見つかりませんと言われました。 どうやら違ってたみたいです。残念。
お礼
ちょっとパッと見では分かんないですね(汗)。 でも、そんな難しいことじゃないと思うので参考URL頼りでやってみます。 一旦スレッドを終えます。 続きのような質問をしたときには、またぜひよろしくお願いします。 どうもありがとう御座いました。