CGIエラー:ファイルが有るのに「No such file or directory: exec of 〜」

CGIファイルがある状態で「No such file or directory: exec of 〜」

引き続きCGIエラーの記事です。
CGIが動作する状態で実行するCGIファイルが存在するのに状態でApacheのエラーには「(2)No such file or directory: exec of」とエラーが表示されCGIが動きません

[Mon Nov 27 14:04:07 2017] [error] [client xxx.xxx.xxx.xxx] (2)No such file or directory: exec of '/var/www/html/cgi-bin/test.cgi' failed

Perlのパスが間違っている可能性もありますが、下記の通りCGIファイルの先頭行にあるPerlのパスが「/usr/bin/perl」となっていて、Perlの自身のパスと一緒です
$ which perl
/usr/bin/perl

$ head -1 /var/www/html/cgi-bin/test.cgi 
#!/usr/bin/perl

Perlのパスの問題でもなければ、あと考えられるのは改行コードです。
実際に「cat -e」コマンドオプションをつけて確認してました。
^M$」となっておりこの場合は、Windows系の使われている改行コードの「CRLF」となっておりCGIが動いているLinuxサーバーと改行コードが違うため動作しなかったようです

改行コードを修正すると問題なくCGIが動作しました。

$ cat -e /var/www/html/cgi-bin/test.cgi 
#!/usr/bin/perl^M$
^M$
^M$

 

スポンサーリンク