How to install Apache, Ruby, RubyGems, Rails, and FastCGI? under Linux
su root
cd /usr/local/srcwget http://xyz.csail.mit.edu/ruby/ruby-1.8.5.tar.gz wget http://rubyforge.org/frs/download.php/11289/rubygems-0.9.0.tgz wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz wget http://mirrors.ccs.neu.edu/Apache/dist/httpd/httpd-2.2.3.tar.gz
tar -zxvf ruby-1.8.5.tar.gz
cd ruby-1.8.5
./configure
make
make test
make install
cd ..</pre>
tar -zxvf rubygems-0.9.0.tgz
cd rubygems-0.9.0
ruby setup.rb
cd ..</pre>
tar -zxvf httpd-2.2.3.tar.gz
cd httpd-2.2.3
./configure --enable-rewrite --enable-cgi --enable-so
make
make install
cd ..
</pre>
tar -zxvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make
make install</pre>wget http://fastcgi.coremail.cn/mod_fcgid.1.10.tar.gz
tar -zxvf mod_fcgid.1.10.tar.gz cd mod_fcgid.1.10
cd ..
tar -zxvf mod_fastcgi-2.4.2.tar.gz
cd mod_fastcgi-2.4.2
cp Makefile.AP2 Makefile
make
make install</pre>
gem install rails
:
Install required dependency rake? [Yn] y
Install required dependency activesupport? [Yn] y
Install required dependency activerecord? [Yn] y
Install required dependency actionpack? [Yn] y
Install required dependency actionmailer? [Yn] y
Install required dependency actionwebservice? [Yn] y
:
</pre>gem install fcgi</pre>
On FreeBSD, If you receive “ERROR: While executing gem” stating “checking for fcgiapp.h… no” then you will have to run the gem install with alternate syntax:
gem install fcgi -- --with-fcgi-include=/usr/local/include --with-fcgi-lib=/usr/local/lib
If you receive an error which contains “can’t find header files for ruby.”, then please install the ruby-devel package.
/usr/local/apache2/conf/httpd.conf or /etc/httpd/conf/httpd.conf) and add these lines:
<Directory /var/www/>
AllowOverride all
</Directory>LoadModule fastcgi_module modules/mod_fastcgi.so
AddHandler fastcgi-script .fcgi
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /var/www/rails/testapp/public
ServerName www.example.com
ErrorLog /var/log/httpd/testapp-error_log
CustomLog /var/log/httpd/testapp-access_log common
Options Indexes ExecCGI FollowSymLinks
RewriteEngine On
LoadModule fcgid_module modules/mod_fcgid.so
/usr/local/apache2/bin/apachectl start
cd /var/www/rails/testapp/public
rm index.html
cd ..
script/generate controller home index</pre>/var/www/rails/testapp/public/.htaccess and change dispatch.*cgi* to dispatch.*fcgi*/var/www/rails/testapp/public/dispatch.fcgi (in rails 0.13.1 this is within the rails installation: lib/fcgi_handler.rb) and changerequire 'fcgi'require 'rubygems'
require_gem 'fcgi'Troubleshooting Suggestions
Make sure that you delete any ruby session files in your /tmp directory before switching to dispatch.fcgi. If you tested with cgi, there might be some with different permission that what apache (fastcgi) can read and will cause issue.
If you want to see if fastcgi is working with ruby, try pasting the following search into test.fcgi (in your rails/public dir). You will need to make sure the file has 755 permissions (chmod 755 test.fcgi).
#!/usr/local/bin/ruby
require 'cgi'
require 'rubygems'
require_gem 'fcgi'
FCGI.each_cgi do |cgi|
content = ''
env = []
cgi.env_table.each do |k,v|
env << [k,v]
end
env.sort!
env.each do |k,v|
content << %Q(#{k} => #{v}<br>\n)
end
cgi.out{content}
end
———
Permissions
Make sure that (when using Apache) your www or apache user has write access to your rails/tmp and rails/log directory.
If not you will get many 500 errors!
———
The above test was working but I didn´t get the dispatcher running under apache2 (self built) until i changed the dependencies of rails-0.14.1/lib/fcgi_handler.rb to:
require 'cgi' require 'rubygems' require_gem 'fcgi' require 'logger' require 'dispatcher' require 'rbconfig'class RailsFCGIHandler
…
I don´t know why this is like this (why the dependencies in the dispatcher should be wrong) but it helped.
———
I’ve been bitten by two things with the Apache configuration: I had MultiViews on, and I was redirecting /some/url.html to /some/url because I don’t want file extensions in my URLs. The second rule causes endless redirect looping with standard Rails’ .htaccess, and MultiViews interferes badly with Rails’ caching. So, keep MultiViews off, and be careful with those redirects. - Matijs van Zuijlen——
-
I have yet to get Apache fcgi working Windows XP SP2. I’ve got Apache working with Rails but it’s slow as mud. I’ve downloaded all the software that I can find and put in the http.conf file the recommended Apache configuration but can’t tell if fcgi is working or not.
Does anyone have a simple step by step recipe to get Apache (v2) on Windows XP Prof running fcgi? I found a test page for Rails but it doesn’t render the link
Ajax Demo <%= javascript_include_tag “prototype” %>What time is it?
I don’t have the time, but <%= link_to_remote( “click here”, :update => “time_div”, :url =>{ :action => :say_when }) %> and I will look it up.
I get the page minus the “click here” link????
———
For anyone trying to get fastcgi working after installing the gem version of the ruby fastcgi lib, I found uninstalling it, then loading the library version and building it, fixed all problems. Download from here http://raa.ruby-lang.org/project/fcgi/ read the README and build and install, and fastcgi starts working.
———
I’ve got lots of help by reading dev411
article on Installing Typo: MySQL, Apache, lighttpd and FastCGI
———
Don’t foreget to comment out
AddHandler fast_cgi-script .fcgi
and add
AddHandler fcgid-script .fcgi
to your .htaccess or it wont work.
———
If you are running on freebsd/mysql and your database.yml is fine but you hit.
Mysql::Error: Lost connection to MySQL server during query: SELECT version FROM schema_info
update your ports and install the ruby-mysql port.
no need for mysql gem and all the grief that causes :)
——-
If you get an error installing ruby at make install that looks like
fileutils.rb:1239:in `copy’: unknown file type: ./.ext/. (RuntimeError)
try running make first (so ./configure, then make, then make test, make install)
(http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/237532)
——
If you get this error on ruby setup.rb when installing gems
/usr/local/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:4:in `require’: no such file to load — zlib (LoadError)
make sure zlib and zlib-devel are installed, then follow these instructions:
http://lucaschan.com/weblog/2007/03/22/installing-ruby-on-rails-on-centosredhat-4x/
How to install Apache, Ruby, RubyGems, Rails, and FastCGI? under Linux
su root
cd /usr/local/srcwget http://xyz.csail.mit.edu/ruby/ruby-1.8.5.tar.gz wget http://rubyforge.org/frs/download.php/11289/rubygems-0.9.0.tgz wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz wget http://mirrors.ccs.neu.edu/Apache/dist/httpd/httpd-2.2.3.tar.gz
tar -zxvf ruby-1.8.5.tar.gz
cd ruby-1.8.5
./configure
make
make test
make install
cd ..</pre>
tar -zxvf rubygems-0.9.0.tgz
cd rubygems-0.9.0
ruby setup.rb
cd ..</pre>
tar -zxvf httpd-2.2.3.tar.gz
cd httpd-2.2.3
./configure --enable-rewrite --enable-cgi --enable-so
make
make install
cd ..
</pre>
tar -zxvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make
make install</pre>wget http://fastcgi.coremail.cn/mod_fcgid.1.10.tar.gz
tar -zxvf mod_fcgid.1.10.tar.gz cd mod_fcgid.1.10
cd ..
tar -zxvf mod_fastcgi-2.4.2.tar.gz
cd mod_fastcgi-2.4.2
cp Makefile.AP2 Makefile
make
make install</pre>
gem install rails
:
Install required dependency rake? [Yn] y
Install required dependency activesupport? [Yn] y
Install required dependency activerecord? [Yn] y
Install required dependency actionpack? [Yn] y
Install required dependency actionmailer? [Yn] y
Install required dependency actionwebservice? [Yn] y
:
</pre>gem install fcgi</pre>
On FreeBSD, If you receive “ERROR: While executing gem” stating “checking for fcgiapp.h… no” then you will have to run the gem install with alternate syntax:
gem install fcgi -- --with-fcgi-include=/usr/local/include --with-fcgi-lib=/usr/local/lib
If you receive an error which contains “can’t find header files for ruby.”, then please install the ruby-devel package.
/usr/local/apache2/conf/httpd.conf or /etc/httpd/conf/httpd.conf) and add these lines:
<Directory /var/www/>
AllowOverride all
</Directory>LoadModule fastcgi_module modules/mod_fastcgi.so
AddHandler fastcgi-script .fcgi
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /var/www/rails/testapp/public
ServerName www.example.com
ErrorLog /var/log/httpd/testapp-error_log
CustomLog /var/log/httpd/testapp-access_log common
Options Indexes ExecCGI FollowSymLinks
RewriteEngine On
LoadModule fcgid_module modules/mod_fcgid.so
/usr/local/apache2/bin/apachectl start
cd /var/www/rails/testapp/public
rm index.html
cd ..
script/generate controller home index</pre>/var/www/rails/testapp/public/.htaccess and change dispatch.*cgi* to dispatch.*fcgi*/var/www/rails/testapp/public/dispatch.fcgi (in rails 0.13.1 this is within the rails installation: lib/fcgi_handler.rb) and changerequire 'fcgi'require 'rubygems'
require_gem 'fcgi'Troubleshooting Suggestions
Make sure that you delete any ruby session files in your /tmp directory before switching to dispatch.fcgi. If you tested with cgi, there might be some with different permission that what apache (fastcgi) can read and will cause issue.
If you want to see if fastcgi is working with ruby, try pasting the following search into test.fcgi (in your rails/public dir). You will need to make sure the file has 755 permissions (chmod 755 test.fcgi).
#!/usr/local/bin/ruby
require 'cgi'
require 'rubygems'
require_gem 'fcgi'
FCGI.each_cgi do |cgi|
content = ''
env = []
cgi.env_table.each do |k,v|
env << [k,v]
end
env.sort!
env.each do |k,v|
content << %Q(#{k} => #{v}<br>\n)
end
cgi.out{content}
end
———
Permissions
Make sure that (when using Apache) your www or apache user has write access to your rails/tmp and rails/log directory.
If not you will get many 500 errors!
———
The above test was working but I didn´t get the dispatcher running under apache2 (self built) until i changed the dependencies of rails-0.14.1/lib/fcgi_handler.rb to:
require 'cgi' require 'rubygems' require_gem 'fcgi' require 'logger' require 'dispatcher' require 'rbconfig'class RailsFCGIHandler
…
I don´t know why this is like this (why the dependencies in the dispatcher should be wrong) but it helped.
———
I’ve been bitten by two things with the Apache configuration: I had MultiViews on, and I was redirecting /some/url.html to /some/url because I don’t want file extensions in my URLs. The second rule causes endless redirect looping with standard Rails’ .htaccess, and MultiViews interferes badly with Rails’ caching. So, keep MultiViews off, and be careful with those redirects. - Matijs van Zuijlen——
-
I have yet to get Apache fcgi working Windows XP SP2. I’ve got Apache working with Rails but it’s slow as mud. I’ve downloaded all the software that I can find and put in the http.conf file the recommended Apache configuration but can’t tell if fcgi is working or not.
Does anyone have a simple step by step recipe to get Apache (v2) on Windows XP Prof running fcgi? I found a test page for Rails but it doesn’t render the link
Ajax Demo <%= javascript_include_tag “prototype” %>What time is it?
I don’t have the time, but <%= link_to_remote( “click here”, :update => “time_div”, :url =>{ :action => :say_when }) %> and I will look it up.
I get the page minus the “click here” link????
———
For anyone trying to get fastcgi working after installing the gem version of the ruby fastcgi lib, I found uninstalling it, then loading the library version and building it, fixed all problems. Download from here http://raa.ruby-lang.org/project/fcgi/ read the README and build and install, and fastcgi starts working.
———
I’ve got lots of help by reading dev411
article on Installing Typo: MySQL, Apache, lighttpd and FastCGI
———
Don’t foreget to comment out
AddHandler fast_cgi-script .fcgi
and add
AddHandler fcgid-script .fcgi
to your .htaccess or it wont work.
———
If you are running on freebsd/mysql and your database.yml is fine but you hit.
Mysql::Error: Lost connection to MySQL server during query: SELECT version FROM schema_info
update your ports and install the ruby-mysql port.
no need for mysql gem and all the grief that causes :)
——-
If you get an error installing ruby at make install that looks like
fileutils.rb:1239:in `copy’: unknown file type: ./.ext/. (RuntimeError)
try running make first (so ./configure, then make, then make test, make install)
(http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/237532)
——
If you get this error on ruby setup.rb when installing gems
/usr/local/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:4:in `require’: no such file to load — zlib (LoadError)
make sure zlib and zlib-devel are installed, then follow these instructions:
http://lucaschan.com/weblog/2007/03/22/installing-ruby-on-rails-on-centosredhat-4x/