このスクリプトでnginx をFastCGI ラッパーとして使用しています。
spawn-fcgi -F 3 -u www-data -s /var/run/perl-fcgi.sock -P /var/run/perl-fcgi.pid -- ./perl-fcgi.pl
ここで、単純なスクリプトがあるとします。
#!/usr/bin/perl
print "Content-type: text/plain\r\n\r\n";
print "hello\n";
スクリプトは正常に実行され、/text.pl を要求すると「hello」が表示されます。しかし、FastCGI ラッパーの 106 行目でわかるように、スクリプトは exec() で実行されるため、基本的に独自の Perl 環境で実行されます。まだ初期化されたスクリプトを持っていないのに、それを個別に呼び出すと、FastCGI の概念全体が台無しになりませんか?
nginx で FastCGI を介して対話する好ましい方法は何でしょうか?
乾杯、--ポレモン
PS: spawn-fcgiは lighttpd のプログラムで、FCGI ラッパーを起動してソケットにバインドします。