- ベストアンサー
サーバーで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でアップロードしました。 プログラムがバグっているわけでもなく、 環境設定もロリポップの指示のとおりに行いましたが 動作できなくて途方にくれております。 他にもチェックすべき箇所がございましたら ご指摘をよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
AMAZON_REST.pm以外にrequire(もしくはinclude)しているモジュールはありませんか?CGI本体だけでなくAMAZON_REST.pmが要求しているモジュールにも注意してください。 (蛇足) モジュールのパーミッションは600でいいと思います(700でも動きますけど)。
その他の回答 (1)
- umasikajiro
- ベストアンサー率67% (545/803)
試しにスクリプトの冒頭を #!/usr/bin/perl $| =1; print"Content-type: text/html\n\n"; open(STDERR,">&STDOUT"); と3行書き足してアクセスするとどうなりますか? あと >Amazonのデータを取得し、HTMLに表示させる サーバーによってはCGIなどからの外部サーバーへの接続を禁止している場合も有ります (今はわからんけどRapidSiteは数年前そうなっていた)
お礼
回答していただきありがとうございました。 上記の通り回答1で解決致しました。 お騒がせして申し訳ございませんでした。 >サーバーによってはCGIなどからの外部サーバーへの接続を禁止している場合も有ります ロリポップはどうなのでしょうか、一度勉強してみます。 貴重なアドバイスをありがとうございました。
お礼
回答ありがとうございました。 おっしゃるとおり、モジュールのアップロードを忘れておりました。 初歩的ミスで恥ずかしい限りです。 ありがとうございました。