2008年8月5日火曜日

BOM無しが基本

題記がすべてを物語っています。
今日もUbuntuな話。
CGI有効化に1日かかりました。
今まではWebminでやっていたんですが、
Apacheに関しては手動のがよさそうです。
それはそうとなんでCGIに1日もかかったかといいますと、
正確にはCGIできたにもかかわらず、右往左往してたという感じです(笑)。
なんか出来ているはずなのにうまく動いていない。
エラーを見ると以下の通り。
という状況が続く。
[*** Mon DD TT:MM:SS YEAR] [error] [client ***.***.***.***] (8)Exec format
error: exec of '/CGI_DIR/file.cgi' failed, referer: http://ip.domain/~usr/c
gi-path/

[*** Mon DD TT:MM:SS YEAR] [error] [client ***.***.***.***] Premature end of
script headers: file.cgi, referer: http://ip.domain/~usr/cgi-path/

とりあえずCGIが出だしでおかしいなってのはわかる。
#! /usr/bin/perl --

とかちゃんとやってるし...。
どこが問題?!
と思ってたんですけどね。
結論からいえばUTF8が問題。
UTF8Nなら問題はなかったんですけどね。
BOMな話ですね。
big endianとかlittle endianとか。
まぁそういう意味ではありがちな話かな。
経験があればすぐ対処できそうだけど。
そもそもCGIをUTF8だけでなくSJISとかEUC-JPでも作ってたら、
すぐに発見できた問題だったような気がする。
ちょっとだけ頭が良くなったかもしれない。

0 件のコメント:

コメントを投稿