INDEX
[apache]CGI で (2)No such file or directory.
1  NI-Lab.  2002/08/13(Tue) 23:34
[apache]CGI で (2)No such file or directory.

またやってしまった……
perlのパスが違ってた。

<症状>
CGIにてInternalServerErrorが発生し、
apache/logs/error_log にこんなの↓が出力される。
[Tue Aug 13 22:xx:xx 2002] [error] (2)No such file or directory: exec of /usr/local/apache/htdocs/nibbs/nibbs.cgi failed

<原因>
CGIを実行させるためのプログラム(Perlとか)がみつからない。

<原因の原因パターン1>
#!/usr/local/bin/perl と指定した場所に perl がない、とか。

<原因の原因パターン2>
CGIスクリプトファイルの改行コードがCR+LF(\r\n)になっている。
#!/usr/local/bin/perl と指定したつもりでも
#!/usr/local/bin/perl\r として扱われるらしい!

<対処方法: 原因の原因パターン1>
perl へのシンボリックリンクを張るか、
スクリプトファイルでの指定先を変える。

<対処方法: 原因の原因パターン2>
改行コードをLF(\n)に変換する。

参考:
http://mm.apache.or.jp/pipermail/newbie/2001-April/000765.html
[Newbie 772] Re: CGIエラー (2)No such fileordirectory:

2  NI-Lab.  2003/04/20(Sun) 11:28
#! /usr/bin/env perl
とすると環境変数 PATH から最初に見つかった perl コマンドが使われるらしい。