Hatena::ブログ(Diary)

気まぐれ日記

2009-09-26

CGIの実行エラー

いつもはWindowsで動作確認しているのですが、最近Linuxを試していたので、Ubuntuで簡単なCGIの動作確認をしてみました。
suEXEC環境でユーザー権限により表示するだけの簡単なCGIは動作することを確認しました。
次に配布されているCGIを試してみたのですが、おなじみの「Internal Server Error 〜」というエラーが出て動きません。
ログには次のようなエラーが出力されていました。

〜 suexec failure: could not open log file, referer: http:// 〜
〜 fopen: Permission denied, referer: http:// 〜
〜 Premature end of script headers: aska.cgi, referer: http:// 〜

ログを見てもらえれば分かるとおり、CGIは有名なKENT WEBさんの「ASKA BBS」です。
もちろんCGIスクリプトには何の問題もありません。
他のCGIは動作しているので、実行環境の方も問題は無いはずです。
パスもパーミッションも何度も確認して、問題がないことは分かっています。
考えても分からなかったのですが、検索したらあっさり答えが見つかりました。
原因は改行コードの違いです。

コマンドから一括で改行コードを変更する方法もあるのですが、パーミッションの変更後でエラーが出るので、ファイル数も少ないことだし「Leafpad」を使って一つずつ保存し直して対処しました。*1
パーミッションを変更し直して、コマンドからやった方が早いのかな?
まぁ、あまり気にしないでください。(^^;A

普段はFTPソフトで転送する時に自動変換されるのであまり意識していませんでしたが、改行コードが違う場合このようなエラーになるのですね。
良い勉強になりました。

*1:geditは最初からLFだけなので変更できません。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/rouge_2008/20090926/1253981231