2015年03月15日

さくらのレンタルサーバで、Premature end of script headersが出る

出たエラーは下記。

[Sun Mar 15 21:28:03 2015] [error] [client 220.219.14.21] Premature end of script headers: foo.cgi
[Sun Mar 15 21:28:04 2015] [error] [client 220.219.14.21] suexec policy violation: see suexec log for more details

この場合、当該ファイル(ここではfoo.cgi)のパーミッションが不正になっているケースが多いそうな。

具体的には705か755でないといけないらしい。

ところが今回のケースではファイルのパーミッションは755になっていた。試しに705にしても動かない。

$ chmod 705 foo.cgi

何が違うのか小一時間ほど頭をひねらせることになったが、ディレクトリのパーミッションが777だったという残念なオチにたどり着いた。

cgiを動かす場合、ディレクトリについても755である必要があるらしい。