- 締切済み
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へのパス,改行コード,パーミッションはチェックしましたが問題ありませんでした. 他に見直すところはあるでしょうか? よろしくお願いします.
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
>しかしCGIファイルだけが外部からだと500エラーを返して表示されません. 同一LANからだと正常に実行されると言うことでしょうか? で、ルーターの外にあるproxyサーバーをブラウザに設定してアクセスするとエラー? アクセスしているURLは同一ですか?
- SAYKA
- ベストアンサー率34% (944/2776)
cgiのソースがおかしいとか出力(主に最初のheader部分)で変なゴミを出しちゃってるとか、そういうの無い? ゴミ出力でやりがちなのがヒアドキュメントの時に最初に空白とか改行を(以下略
お礼
同一LAN内の端末からだと,ローカルIPアドレスでアクセスでき, HTML文書もCGIファイルも正常に表示されます. ただし,同一LAN内だとグローバルIPでアクセスしようとすると,グローバルIP→デフォルトゲートウェイ→ルータの管理画面と飛んでしまうのでグローバルIPでは試せません. 逆にルータの外にあるproxyサーバをブラウザに設定してアクセス(この時はグローバルIPアドレス)すると,HTML文書は表示されるがCGIは500エラーを返します.
補足
質問者です. こちらへのレスの内容が少々間違っておりましたので,こちらで補足させていただきます. グローバルIPではアクセスできませんでしたが, DDNSで所得したドメインでのアクセスは正常に表示されました.