• 締切済み

CGIの500エラー

玄箱Proの中にDebianを入れ,SSHでの公開鍵認証の設定,Apacheの導入を行いました. ネットにはつながり,OSのアップグレードや時刻の同期なども行えます. DDNSサービスにて無料ドメインをとり,外部からHTML文書にアクセス,表示させることもできました. しかしCGIファイルだけが外部からだと500エラーを返して表示されません. 外部へのアクセスチェックとして,プロキシをかましてアクセスしています. (ルータをかましているのでグローバルIPにアクセスしてもルータ管理画面にいってしまう為) /etc/apache2/sites-available/default の Options Indexes FollowSymLinks MultiViews AllowOverride None を Options Includes ExecCGI FollowSymLinks MultiViews AllowOverride All に変更, /etc/apache2/apache2.conf の AddHandler cgi-script .cgi .pl ここのコメントアウトをはずしました. エラーログでは Premature end of script headers: test.cgi と表示されており, Perlへのパス,改行コード,パーミッションはチェックしましたが問題ありませんでした. 他に見直すところはあるでしょうか? よろしくお願いします.

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

>しかしCGIファイルだけが外部からだと500エラーを返して表示されません. 同一LANからだと正常に実行されると言うことでしょうか? で、ルーターの外にあるproxyサーバーをブラウザに設定してアクセスするとエラー? アクセスしているURLは同一ですか?

akasagi
質問者

お礼

同一LAN内の端末からだと,ローカルIPアドレスでアクセスでき, HTML文書もCGIファイルも正常に表示されます. ただし,同一LAN内だとグローバルIPでアクセスしようとすると,グローバルIP→デフォルトゲートウェイ→ルータの管理画面と飛んでしまうのでグローバルIPでは試せません. 逆にルータの外にあるproxyサーバをブラウザに設定してアクセス(この時はグローバルIPアドレス)すると,HTML文書は表示されるがCGIは500エラーを返します.

akasagi
質問者

補足

質問者です. こちらへのレスの内容が少々間違っておりましたので,こちらで補足させていただきます. グローバルIPではアクセスできませんでしたが, DDNSで所得したドメインでのアクセスは正常に表示されました.

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

cgiのソースがおかしいとか出力(主に最初のheader部分)で変なゴミを出しちゃってるとか、そういうの無い? ゴミ出力でやりがちなのがヒアドキュメントの時に最初に空白とか改行を(以下略

関連するQ&A