あるcgiをサーバにアップロードしてブラウザからアクセスしたら Internal Server Error が出てエラーログに以下の内容が出力された。
(2)No such file or directory: exec of '/var/www/cgi-bin/test.cgi' failed
ファイルは存在するし権限与えてるしなんでだと思って調べたら、ファイルの改行コードが LF(\n) じゃなくて CRLF(\r\n) なのが原因だった。
つまり、cgi先頭の #!/usr/bin/perl
が CRLF のせいで #!/usr/bin/perl\r
になってしまった、と。
改行コードを LF に統一したら動作した。
つうかこのエラー、perl-cgi界隈だと初心者がハマる有名なやつっぽい。はー