cgiエラー Premature end of script headers:
最近はphpスクリプトばかりでperlスクリプトはほとんど使わなくなったが、今日必要に迫られてperlを使ったらエラーが出た。
Premature end of script headers:
あれ? perlを使ったのがおおよそ5年ぶりなんで、基本を間違えたかな?
エラーログからいろいろ調べていくと原因がわかった。
先頭の
#! /usr/bin/perl
のあとに、見えないけれども改行コード(CRLF)が入っており、CRがパス名にくっついて “/usr/bin/perl\r” などとなってしまっている。
教科書的な対処方法としては、改行コードをDOS(CRLF)からUnix(LF)にして再度アップすればいいのだが、ちょっと面倒だ。
それで、#! /usr/bin/perl のあとにおまじないとして– を入れてみた。とすると、\rが離れるのでエラーがなくなった。
めったに使わないが、次回忘れていると悪いので記録しておこう。
それにしても、いつからこの現象が出るようになったんだろう。定かではないが、ftpクライアントをfilezillaに変えてからだろうか?