概要
何度も設置したことのあるCGIを、何度も使っているVPSサーバに設置しようとしたところ、Internal Server Errorが出てしまいました。このエラーは原因究明に時間がかかることが多く、見るとドキッとします。
何度も設置したことのあるCGIですが、現在は手元にないので、今回は新しいファイルを入手して設置。コードの中身は変わっていません。
FileZillaを使い、SFTPでサーバにアップしました。CGIの権限はいつもと同じく755。
他の人に設置してもらったらあっさりと動いたので、後々のために原因究明だけ進めました。
調査
気がついたのは、サーバにアップしてもらったファイルサイズと、手元のファイルサイズが違うこと。見た目のコードは同じ。ただ、改行コードを見ると、手元のファイルはCR + LF。これをLFにしてアップしたら動きました。
まとめ
今まで、わざわざ改行コードを変換してサーバにアップした覚えがありません。
最近はSFTPやFTPSで転送することが多いのですが、SFTPは改行コードの変換をサポートしていないということを知りませんでした。知らなくても問題なかったということは、以前使いまわしていたCGIファイルがLFで保存されていたものと思われます。手元にないので確認できませんが。