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:in `each_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:in `process!'' /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 <IfModule mod_fastcgi.c> FastCgiIpcDir /tmp/fcgi_ipc/ AddHandler fastcgi-script .fcgi </IfModule> <Directory "/var/www/html/test2"> AllowOverride All </Directory> 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?
Brian Sammon
2005-Dec-20 16:13 UTC
Re: trouble with fastcgi and "undefined method `is_cgi?''"
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?