Trouble with fastcgi and "undefined method `is_cgi?'"


#1

I’m trying to get started with fastcgi on apache 2.0.54 on Fedora Core
4.
I’ve created a really simple Rails app that doesn’t do any database
actions.
It works fine when I call it as CGI, but when I try to switch to
fastCGI, I
have problems.

I get the following error in log/fastcgi.crash.log:
[20/Dec/2005:10:16:53 :: 26912] Dispatcher failed to catch: undefined
method
is_cgi?' for FCGI:Class (NoMethodError) /usr/lib/ruby/gems/1.8/gems/fcgi-0.8.6.1/./fcgi.rb:593:ineach_cgi’
/usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/fcgi_handler.rb:52:in
process!' /usr/lib/ruby/gems/1.8/gems/rails-1.0.0/lib/fcgi_handler.rb:22:inprocess!’
/var/www/html/test2/public/dispatch.fcgi:24
killed by this error

There’s a bunch of error messages in /var/log/httpd/error.log, but as
far as I
can tell, all they really say is that dispatch.fcgi died prematurely.

Here’s (what I think is) the relevant snippet from the httpd.conf:
LoadModule fastcgi_module modules/mod_fastcgi.so

FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi

<Directory “/var/www/html/test2”>
AllowOverride All

Here’s the rewrite stuff from public/.htaccess :
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]

I’m running:
rails 1.0.0
fcgi (0.8.6.1)
mod_fcgi 2.4.2
fastcgi devel libraries 2.4.0
apache 2.0.54
Fedora Core 4

Any ideas?


#2

This problem went away when I uninstalled the fcgi gem and used a
manually-installed fcgi instead.

This brings to mind a related question:
In the wiki at http://wiki.rubyonrails.com/rails/pages/fastcgi
it says
in public/dispatch.fcgi change

require 'fcgi'

to

require 'rubygems'
require_gem 'fcgi'

as part of the fastcgi installation instructions. Since there wasn’t a
“require ‘fcgi’” line in my public/dispatch.fcgi , I ignored this
instruction.
There was, however, a “require ‘fcgi_handler’” Should I have replaced
that
line, and if so, with what?