本页主题: How to install Apache, Ruby, RubyGems, Rails, and FastCGI? under Linux 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

admin
级别: 管理员


精华: 1
发帖: 4646
威望: 47 点
金钱: 23190 RMB
贡献值: 0 点
注册时间:2006-10-09
最后登录:2008-12-02

 How to install Apache, Ruby, RubyGems, Rails, and FastCGI? under Linux

How to install Apache, Ruby, RubyGems, Rails, and FastCGI? under Linux

Become root and go to a directory to work in

su rootcd /usr/local/src
Download all of the needed files. These versions may be out of date, so you might want to go find the latest.

wget http://xyz.csail.mit.edu/ruby/ruby-1.8.5.tar.gzwget http://rubyforge.org/frs/download.php/11289/rubygems-0.9.0.tgzwget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gzwget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gzwget http://mirrors.ccs.neu.edu/Apache/dist/httpd/httpd-2.2.3.tar.gz
Install Ruby

tar -zxvf ruby-1.8.5.tar.gzcd ruby-1.8.5./configuremakemake testmake installcd ..
Install Ruby Gems

tar -zxvf rubygems-0.9.0.tgzcd rubygems-0.9.0ruby setup.rbcd ..
Install Apache (if needed—if you have an existing Apache installation & know what you are doing this step can be skipped)

tar -zxvf httpd-2.2.3.tar.gzcd httpd-2.2.3./configure --enable-rewrite --enable-cgi --enable-somakemake installcd ..
Install FastCGI?

tar -zxvf fcgi-2.4.0.tar.gz cd fcgi-2.4.0./configuremakemake install
Install mod_fcgi
mod_fastcgi is heavily outdated and very hard to install it is better to use mod_fcgid

wget http://fastcgi.coremail.cn/mod_fcgid.1.10.tar.gztar -zxvf mod_fcgid.1.10.tar.gzcd mod_fcgid.1.10# in Makefile set top_dir to the top path of you apache i.e. /usr/local/apache2makemake install
If fcgid is not working for you try installing mod_fastcgi for Apache (note that this assumes you are using Apache-2.x, etc.; if you are using Apache 1.3, DSOs, etc. read the INSTALL file.
If you are on the Debian platform and you installed Apache2 via apt-get, here are some Debian mod_fastcgi Notes
If you are using Fedora Core and you installed Apache2 with yum and/or an RPM, see this blog post:
http://jimthompson.org/wp/2005/05/29/building-modfastcgi-for-apache2/

cd ..tar -zxvf mod_fastcgi-2.4.2.tar.gzcd mod_fastcgi-2.4.2cp Makefile.AP2 Makefilemakemake install
Install Rails

gem install rails    :Install required dependency rake? [Yn]  yInstall required dependency activesupport? [Yn]  yInstall required dependency activerecord? [Yn]  yInstall required dependency actionpack? [Yn]  yInstall required dependency actionmailer? [Yn]  yInstall required dependency actionwebservice? [Yn]  y    :
Install the fcgi gem

gem install fcgi

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.
Edit your Apache configuration (typically found somewhere like /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.soAddHandler 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</VirtualHost>
Edit your Apache configuration (with fcgid instead of fastcgi)
FastCGI is severly outdated, so it is recommended that you use FCGID instead. If you use FCGID two lines in the configuration file will be different:

LoadModule fcgid_module modules/mod_fcgid.so# in case of mod_fcgid you may want to add <IfModule mod_fcgid.c>    AddHandler fcgid-script .fcgi    IPCCommTimeout 40    IPCConnectTimeout 10    DefaultInitEnv RAILS_ENV production    SocketPath /tmp/fcgidsock</IfModule>
Start Apache

/usr/local/apache2/bin/apachectl start
Go to http://www.example.com and see the Rails welcome page.
Set up a database for Rails in database.yml (or see HowToUseRailsWithoutADatabase).
Create a simple controller for testing Rails

cd /var/www/rails/testapp/publicrm index.htmlcd ..script/generate controller home index
Go to www.example.com/home/index and see a default view, running with normal cgi.
Enable FastCGI?
Edit /var/www/rails/testapp/public/.htaccess and change dispatch.*cgi* to dispatch.*fcgi*
Edit /var/www/rails/testapp/public/dispatch.fcgi (in rails 0.13.1 this is within the rails installation: lib/fcgi_handler.rb) and change

require 'fcgi'

to

require 'rubygems'require_gem 'fcgi'
Go to www.example.com/home/index and see a default view again, but with 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 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/rubyrequire '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


<html>  <head>    <title>Ajax Demo</title>    <%= javascript_include_tag "prototype" %>  </head>  <body>    <h1>What time is it?</h1>    <div id="time_div">      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.    </div>  </body></html>
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.

tttt


--------------------------------------------------------------------------------

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
顶端 Posted: 2007-06-24 18:45 | [楼 主]
admin
级别: 管理员


精华: 1
发帖: 4646
威望: 47 点
金钱: 23190 RMB
贡献值: 0 点
注册时间:2006-10-09
最后登录:2008-12-02

 

顶端 Posted: 2007-06-24 18:46 | 1 楼
帖子浏览记录 版块浏览记录
承德互联 » unix专区

Total 0.029487(s) query 7, Time now is:12-03 10:08, Gzip enabled
Powered by PHPWind v6.3.2 Certificate Code © 2003-08 PHPWind.com Corporation