FreeBSD 8.0 + Apache2.2.14 + mod_fastcgi-2.4.6 の動作確認

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

portsからmod_fastcgiやp5-FastCGIが導入できるようになったので、かなり手間が省けるようになったのですが、いざFastCGIで動作させようとするとうまく動かなくて悩んでいました。

httpd.confでの設定は下記の通り。

<IfModule mod_fastcgi.c>
FastCgiIpcDir /var/run/fastcgi/
FastCgiConfig -autoUpdate
FastCgiConfig -idle-timeout 120
FastCgiConfig -killInterval 300
FastCgiConfig -maxClassProcesses 4
</IfModule>

<Directory "/usr/local/www/apache22/cgi-bin/test">
<IfModule mod_fastcgi.c>
<FilesMatch "\.fcgi$">
SetHandler fastcgi-script
</FilesMatch>
</IfModule>
AddDefaultCharset UTF-8
AddType "text/html; charset=UTF-8" .html
Options ExecCGI IncludesNOEXEC
</Directory>

動作確認用に/cgi-bin/testを作り、「hello.cgi」というスクリプトを置いてみました。 パーミッションは755です。

#!/usr/bin/perl -w
print "Content-type: text/html \n\n";
print "Hello";

実行すると、

Hello

と表示されます。 同じスクリプトを「hello.fcgi」という名前で置いてアクセスすると、

500 Internal Server Error

と表示されます。 /var/log/httpd-error.logを見ると、

Content-type: text/html

Hello[Sat Jan 30 17:48:12 2010] [warn] FastCGI: server "/usr/local/www/apache22/cgi-bin/test/hello.fcgi" (pid 46570) terminated by calling exit with status '0'
[Sat Jan 30 17:48:17 2010] [warn] FastCGI: server "/usr/local/www/apache22/cgi-bin/test/hello.fcgi" restarted (pid 46572)

とか記録されています。 何でエラーログに「Hello」って出てるんだ?
どうやら普通のCGIスクリプトをそのままFastCGIで動かしてはダメみたいです。


FastCGIの動作確認用に、なんか良いスクリプトはないかしらん?と探したら、nlog(n)さんの「FastCGI を Vine Linux 4.1 にインストール」という記事にありました。

fast_count.cgi」と同じ内容で「fast_count.fcgi」を設置してみたら、FastCGIの方はちゃんとカウントが増えました。 httpd-error.logにもエラーは出ていません。
どうやらFastCGIの環境自体はOKみたいです。 あとはMT5がちゃんと動くかですね。


D510MOも、先ほど届きました。 いよいよNetVista M42 Slimへの組み込みです。
しばらくデスクトップ機が使えなくなります。 次回の記事を乞うご期待。