• ベストアンサー

サーバーで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でアップロードしました。 プログラムがバグっているわけでもなく、 環境設定もロリポップの指示のとおりに行いましたが 動作できなくて途方にくれております。 他にもチェックすべき箇所がございましたら ご指摘をよろしくお願いいたします。

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

AMAZON_REST.pm以外にrequire(もしくはinclude)しているモジュールはありませんか?CGI本体だけでなくAMAZON_REST.pmが要求しているモジュールにも注意してください。 (蛇足) モジュールのパーミッションは600でいいと思います(700でも動きますけど)。

fken
質問者

お礼

回答ありがとうございました。 おっしゃるとおり、モジュールのアップロードを忘れておりました。 初歩的ミスで恥ずかしい限りです。 ありがとうございました。

その他の回答 (1)

回答No.2

試しにスクリプトの冒頭を #!/usr/bin/perl $| =1; print"Content-type: text/html\n\n"; open(STDERR,">&STDOUT"); と3行書き足してアクセスするとどうなりますか? あと >Amazonのデータを取得し、HTMLに表示させる サーバーによってはCGIなどからの外部サーバーへの接続を禁止している場合も有ります  (今はわからんけどRapidSiteは数年前そうなっていた)

fken
質問者

お礼

回答していただきありがとうございました。 上記の通り回答1で解決致しました。 お騒がせして申し訳ございませんでした。 >サーバーによってはCGIなどからの外部サーバーへの接続を禁止している場合も有ります ロリポップはどうなのでしょうか、一度勉強してみます。 貴重なアドバイスをありがとうございました。

関連するQ&A