Perlプログラムに関する各種メモ書き

CGIエラー【Premature end of script headers】 の対処法

cgiスクリプトを実行しようとすると Internal Server Error となり、error.log を見ると

Premature end of script headers

となっている時があります。

これはPerl が suexec で動くサーバだとたまにでる事がありますが、原因を特定することが

困難なため対処方法が非常にやっかい。

個人的には以下の作業でなおる事が多いのでメモ。

1. cgiスクリプトをバイナリモードでアップロードする。
2. 改行コードを「LF」(unix) にする
3. スクリプトの最後に「1; (改行)(改行)」を付け足す

それでも直らないときはこちら

1行目
#!/usr/bin/perl
  ↓
#!/usr/bin/perl -
という風に半角スペースとハイフンを追加する

なお「ヘテムル」などのレンタルサーバでは .htaccess の内容が間違っていると 500 エラーとなることがあります。

こちらも要注意


関連エントリー

No.542
07/14 17:08

edit

エラー対処