cgiが動かない?解決方法を教えてください!

このQ&Aのポイント
  • 初めて質問させていただきます。cgiが動かない問題について、解決方法を教えてください。
  • 詳細な手順を説明していただけると助かります。初めての経験で、どう対処すればいいか分からない状況です。
  • 具体的なエラーメッセージが表示されるため、問題の原因を特定しやすい状況です。是非、アドバイスをお願いします。
回答を見る
  • ベストアンサー

cgiが動きません・・・

初めて質問させていただきます。 動かしたいcgi:http://jam.apricot.co.jp/affiliate/aws/netamazon.html        (このcgiを改造して、出力項目を増やし、適当な区切り記号の         csvファイルとして保存しようと思っています。) 場所:xrea.com(仕様は http://www.xrea.com/?action=spec) 行った手順:  1.cgiソースをテキストエディタにコピペ、「browse.cgi」としてFTP。   属性を755に。  2.Script Errorが出たので、http://www.execweb.cx/~appoh/soft/check.htm   のperlチェッカーを使用してチェック。すると、   「Can't locate Net/Amazon.pm in @INC ~at ./browse.cgi 行番号 10.」   との結果。該当行のNet::Amazonモジュールが無いと判断。  3.http://net-amazon.sourceforge.net/ より、Net-Amazon-0.29.tar.gzを   ダウンロード。解凍後、libフォルダ内のNetフォルダ以下を全て   browse.cgiと同じ場所にFTP。Net内の「Amazon.pm」の属性を755に。  4.同じくperlチェッカーを使用してチェックすると、   「Can't locate Log/Log4perl.pm in @INC ~at Net/Amazon.pm     行番号 19.」   との結果。   http://log4perl.sourceforge.net/ より、Log-Log4perl-0.48.tar.gzを   ダウンロード。解凍後、libフォルダ内のLogフォルダ以下を全て   先程のNetフォルダ内、Amazon.pmと同じ場所にFTP。「Log4perl.pm」の   属性を755に。  5.4とエラー内容が変わらず、「Can't locate Log/Log4perl.pm in @INC    ~at Net/Amazon.pm 行番号 19.」の表示。その後、Amazon.pmと同じ   階層に直接Log4perl.pmを置いてみたりしましたが、エラーメッセージは   変わりませんでした。 根本的に間違っているのでしょうか・・・ 是非ご教授いただければ幸いです。何卒宜しくお願い致します。

  • Perl
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

./browse.cgi からみて Log/ フォルダに Log4perl.pm を入れてください。 (Log と Net のフォルダは同階層) Log/Log4perl.pm

hitoshi777
質問者

お礼

申し訳ありません、お礼でなく補足で書いてしまいました・・・ 改めてお礼として書かせて頂きます。 ご回答、ありがとうございます。 只今、おっしゃる通り、Netフォルダと同階層に Logフォルダを置いて、中のLog4perl.pmその他を 入れてみましたが、browse.cgiは「HTTP 500 - 内部サーバー エラー」で、check.cgiでは ------------------------- Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run this script under CGIWrap debugging. Usually, either rename or link the script temporarily to a file which ends with .cgid extension, or add a AddHandler cgi-script-debug .cgi line to your .htaccess file. ------------------------- と出ました・・・他にも足りないモジュールがあると いうことなのでしょうか・・・?

hitoshi777
質問者

補足

ご回答、ありがとうございます。 只今、おっしゃる通り、Netフォルダと同階層に Logフォルダを置いて、中のLog4perl.pmその他を 入れてみましたが、browse.cgiは「HTTP 500 - 内部サーバー エラー」で、check.cgiでは ------------------------- Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run this script under CGIWrap debugging. Usually, either rename or link the script temporarily to a file which ends with .cgid extension, or add a AddHandler cgi-script-debug .cgi line to your .htaccess file. ------------------------- と出ました・・・他にも足りないモジュールがあると いうことなのでしょうか・・・?

関連するQ&A

  • perl niftyについて。use CGI;

    画像アップロードのスクリプトを作ろうと思っているのですが、 use CGI; という記述をすると、ここでエラーに引っかかります。 下はperl checkerでのエラー表示です Can't locate CGI.pm in @INC (@INC contains: /usr/local/lib/perl5/5.00503/sun4-solaris /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/site_perl/5.005/sun4-solaris /usr/local/lib/perl5/site_perl/5.005 .) at a.cgi line 10. BEGIN failed--compilation aborted at a.cgi line 10. 参考URLはここ http://www.topstudio.co.jp/~kmuto/html/node38.html niftyでは使えないようになってしまっているのでしょうか? また、CGI.pmを使わないファイルアップロードの仕組みを解説しているサイトを知っている方がいたら、教えてくださいませ。

    • ベストアンサー
    • CGI
  • cgiがうまく動作しません。

    はじめまして。 現在独学でlinuxの勉強をしている者です。検索をしたり本を読んだりして対策を試みたのですがどうしても解決できないため、質問させていただきます。 環境は redhatlinux9 Apache2.0.40 です。 cgiを置いたディレクトリにブラウザでアクセスすると、 Internal Server Error と出てしまいます。 ログを見ると、 [error] 6099: ModPerl::Registry: Can't locate ./jcode .pl in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/li b/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/pe rl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i3 86-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_per l /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at /var/w ww/cgi-bin/bbs/wforum.cgi line 11.! と表示されています。試しにwforum.cgiの11行目以下の require './jcode.pl'; require './fold.pl'; require './wf_init.cgi'; を require 'jcode.pl'; require 'fold.pl'; require 'wf_init.cgi'; と変更してみたところ、今度は (略)Can't locate fold.pl(略) at /var/www/cgi-bin/bbs/wforum.cgi line 12.! というエラーログが表示されました。 perlプログラムの文法、パーミッション、改行コード、FTP転送の際の転送モードは確認済みのため、問題ないと思われます。また、ここの過去ログを参考にして作成した #!/usr/bin/perl print<<EOF Content-type: text/html <HTML><BODY>CGI works Good.</BODY></HTML> EOF というtest.cgiは動作可能でした。 こういった場合、どのような原因が考えられるでしょうか。どうかご教授ください。よろしくお願いします。

  • perlのrequreの設定

    perlでCGIを書いていますが、一部のhoge.pmは別のサーバーに置いてあります。その場合一部のhoge.pmを別のサーバーから読み込むことは可能ですか? require 'https://www.hoge.co.jp/home/hogehoge/hoge.pm' にすると’can't locate'のエラーになります。どのようにしたら良いのでしょう? perlを始めたばかりで知識がありません。よろしくお願いします。

    • ベストアンサー
    • Perl
  • Jcode.pmについて

    ネット上からダウンロードしてきたCGIプログラム内で、Jcode.pmを使用しているようなのですが、サーバ にUpしたところ、以下の様なエラーが表示されました。 ※1 Can't locate Jcode.pm in @INC (@INC contains: /usr/lib/perl5/5.6.1/i386-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i386-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl .) at access/accview.cgi line 68. ※2 BEGIN failed--compilation aborted at access/accview.cgi line 68. ちなみに、accview.cgi line 68には use Jcode; と書かれていました。 エラーの原因として、何がありますか? また、その解決法を教えていただきたいです。

    • ベストアンサー
    • Perl
  • Can't locate...

    こんにちは。Perl初心者で、 ネット上のPerlのサンプルプログラムを動かそうとしましたが 以下のようにエラーがでて実行できません。。 Can't locate Lingua/JA/Romanize/Japanese.pm in @INC (@INC contains: ./ /usr/local/lib/perl5/5.00504/i686-linux /usr/local/lib/perl5/5.00504 /usr/local/lib/perl5 /site_perl/5.005/i686linux /usr/local/lib/perl5/site_perl/5.005 .) at object.cgi line 4. BEGIN failed--compilation aborted at object.cgi line 4. これはどういったエラーで、どうすれば解決しますか。 教えてください。

  • CGIエラー

    アクセス解析のCGIを設置しようとしてるのですが、動作確認の際に、以下のエラーが出ます。 The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: Can't locate config.pl in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at C:\daishin_www\cgi-bin\access\accview.cgi line 83. CGIを設置するのはこれが初めてなので、このエラー文が何を言いたいのか、どこを直せば動くようになるのか、ぜんぜんわからずに困っています。 どなたか教えて頂けませんか? サーバーは自社サーバーでWindowsです。

    • ベストアンサー
    • CGI
  • Can't locate R.pm in @INC

    perl初心者でまた質問させていただきます。 CGIを作っているのですが、R.PMが使えなくて困っています。 USE R; とすると、以下のようなエラーが出てしまいます。 Can't locate R.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl .) at /srv/www/htdocs/cgi/ringo.cgi line 5. BEGIN failed--compilation aborted at /srv/www/htdocs/cgi/ringo.cgi line 5. Premature end of script headers: ringo.cgi そこで、 locate R.pm で、場所を探しました。 /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/R.pm ということで、 use R '/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/'; このように変えてみたものの、同じエラーです。ちなみに、CGIではなく、PERLのプログラムからだと、use R;で動作することは確認しました。 よろしくお願いします。

    • 締切済み
    • CGI
  • @INCにrequireされたファイルが無い

    自作のCGIを実行したところ Can't locate BASE64 in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at g etHTTP line 71. のようなエラーが出ます。 BASE64がインストールされているかどうか確認するために、次のサイトのcheck.cgiを実行してみました。 http://perl.shtml.jp/check/check.html インストールされているということなので、検索を掛けてBase64.pmのパスを調べました。 C:\Perl\lib\MIME そこで以下のコードを追加して実行しなおしました。 unshift @INC, "C:/Perl/lib/MIME"; 残念ながらうまく動きませんでした。 Can't locate BASE64 in @INC (@INC contains: C:/Perl/lib/MIME C:/Perl/site/lib C: /Perl/lib .) at getHTTP line 71. どうすれば良いでしょう。 お手数をお掛けします。

    • ベストアンサー
    • Perl
  • サーバーでCGIを実行すると500Errorが発生します

    CGI初心者です。 マニュアル類、過去の質問に目を通しましたがそれでも解決 しない問題に直面した為、質問させて頂きます。 CGIをサーバー(ロリポップ)にアップロードさせて 実行したところ、500Errorが発生します。 ■CGIの内容 検索フォームに入力されたキーワードをキーにして Amazonのデータを取得し、HTMLに表示させるというものです。 自作のCGIです。 ■ファイル構成 index.html (属性:604) ItemSearcher.cgi(属性:700) AMAZON_REST.pm (属性:700) CGIの一行目は下記のとおりで、ロリポップ指定の記述法に従っております。 #!/usr/bin/perl ・CGIはローカルの環境では問題なく動作します。 ・転送モードはASCIIでアップロードしました。 プログラムがバグっているわけでもなく、 環境設定もロリポップの指示のとおりに行いましたが 動作できなくて途方にくれております。 他にもチェックすべき箇所がございましたら ご指摘をよろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CGIからuse GDBM_Fileを宣言出来ない

    質問失礼します。 GDBMを用いたプログラムをperlで作ったのですが、 solarisのコマンドラインから打ち込むと普通に実行出来ます。 しかし、webブラウザからCGIでsystem関数を使い そのプログラムを呼び出すと実行出来ません。 どうやら use GDBM_File; の部分でエラーが起きているようです。 そこで、エラーログを見ると以下の記述がありました [Wed Jan 23 17:17:13 2008] [error] [client 157.80.85.160] Can't locate GDBM_file.pm in @INC (@INC contains: /usr/perl5/5.8.4/lib/sun4-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/sun4-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .)~以下略 とにかく「Can't locate GDBM_file.pm ~」と書いてあるので 以下の文を「use GDBM_File;」の上に加えて、 探す場所を指定したのですが use lib '/opt/csw/lib/perl/5.8.8'; 今度は [Wed Jan 23 20:15:05 2008] [error] [client 157.80.85.160] Can't load '/opt/csw/lib/perl/5.8.8/auto/GDBM_File/GDBM_File.so' for module GDBM_File: ld.so.1: perl: fatal: relocation error: file /opt/csw/lib/perl/5.8.8/auto/GDBM_File/GDBM_File.so: symbol Perl_croak_nocontext: referenced symbol not found at /usr/perl5/5.8.4/lib/sun4-solaris-64int/XSLoader.pm line 68., ~以下略 と出てきて、実行されません パーミッションも「444」で読み込みは出来るようになっているはずです どなたかこのエラーの解決法がわかる方はいませんでしょうか? ご教授願います。

    • 締切済み
    • CGI

専門家に質問してみよう