RailsOnCentos Install
时间:2006-07-13 来源:huanghaojie
RailsOnCentos
Home Page | All Pages | Recently Revised | FeedNote This guide will help you install ruby on rails on centos 4.2 with apache2 acting as a proxy for lighttpd. This guide may and probably does have errors. Please feel free to correct them!
1. Install Ruby
Need to install the testing repository so add this to the /etc/yum.repos.d/ That will allow you to rock ruby 1.8.4
# packages in testing
[testing]
name=CentOS-$releasever - Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
gpgcheck=1
enabled=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
#yum update
#yum install ruby ruby-devel ruby-libs irb rdoc
(uncommented)
yum update
yum install ruby ruby-devel ruby-libs irb rdoc
2. Install lighttpd
Lighttpd and lighttpd-fcgi are in dag repository. Add it to the /etc/yum.repos.d/.
You may also need to import the Dag GPG key.
http://dag.wieers.com/home-made/apt/FAQ.php#B2
#Dag
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
#yum update
#yum install lighttpd-fastcgi lighttpd
For checkinstall method (builds a simple rpm)
yum install checkinstall
(uncommented)
yum update
yum install lighttpd-fastcgi lighttpd
3. Get Gem
#cd /usr/local/src
#wget http://rubyforge.org/frs/download.php/5207/rubygems-0.8.11.tgz
(uncommented)
cd /usr/local/src
wget http://rubyforge.org/frs/download.php/5207/rubygems-0.8.11.tgz
4. Install Gem
#tar -xvzf rubygems-0.8.11.tgz
#cd rubygems-0.8.11
#ruby setup.rb
cd ..
(uncommented)
tar -xvzf rubygems-0.8.11.tgz
cd rubygems-0.8.11
ruby setup.rb
cd ..
5. Install fast-cgi
Checkinstall method (builds an RPM)
cd /usr/local/src
wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make
checkinstall # Chose the rpm settings and create docs if you like
rpm -Uvh /usr/src/redhat/RPMS/i386/fcgi-2.4.0-1.i386.rpm
cd ..
Without checkinstall:
#cd /usr/local/src
#wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
#tar xzvf fcgi-2.4.0.tar.gz
#cd fcgi-2.4.0
#./configure
#make
#make install
#cd ..
(uncommented)
cd /usr/local/src
wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make
make install
cd ..
6. Install fast-cgi Bindings
#cd /usr/local/src
#wget http://sugi.nemui.org/pub/ruby/fcgi/ruby-fcgi-0.8.6.tar.gz
#tar zxvf ruby-fcgi-0.8.6.tar.gz
#cd ruby-fcgi-0.8.6
#ruby install.rb config
#ruby install.rb setup
#ruby install.rb install
#cd ..
(uncommented)
cd /usr/local/src
wget http://sugi.nemui.org/pub/ruby/fcgi/ruby-fcgi-0.8.6.tar.gz
tar zxvf ruby-fcgi-0.8.6.tar.gz
cd ruby-fcgi-0.8.6
ruby install.rb config
ruby install.rb setup
ruby install.rb install
cd ..
7. Install Rails
#gem install rails --include-dependencies
(uncommented)
gem install rails --include-dependencies
Config Files
Add this to /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ServerName ruby.werd.local
ProxyPass / http://ruby.werd.local:81/
ProxyPassReverse / http://ruby.werd.local:81
ProxyPreserveHost on
</VirtualHost>
Complete example /etc/lighttpd/lighttpd.conf file:
You will need to set your own directory for the webroot to live in and run rails someapp to generate the application directories specified in the configuration file. Of course, you should tune this to match your settings (as well as the virtual host settings for Apache.)
server.port = 81
#server.bind = "0.0.0.0"
server.modules = (
"mod_rewrite",
"mod_access",
"mod_fastcgi",
"mod_accesslog"
)
server.indexfiles = (
"index.php",
"index.html",
"index.htm",
"default.htm"
)
server.pid-file = "/tmp/lighttpd.pid"
url.access-deny = ( "~", ".inc" )
mimetype.assign = (
".rpm" => "application/x-rpm",
".pdf" => "application/pdf",
".sig" => "application/pgp-signature",
".spl" => "application/futuresplash",
".class" => "application/octet-stream",
".ps" => "application/postscript",
".torrent" => "application/x-bittorrent",
".dvi" => "application/x-dvi",
".gz" => "application/x-gzip",
".pac" => "application/x-ns-proxy-autoconfig",
".swf" => "application/x-shockwave-flash",
".tar.gz" => "application/x-tgz",
".tgz" => "application/x-tgz",
".tar" => "application/x-tar",
".zip" => "application/zip",
".mp3" => "audio/mpeg",
".m3u" => "audio/x-mpegurl",
".wma" => "audio/x-ms-wma",
".wax" => "audio/x-ms-wax",
".ogg" => "application/ogg",
".wav" => "audio/x-wav",
".gif" => "image/gif",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".png" => "image/png",
".xbm" => "image/x-xbitmap",
".xpm" => "image/x-xpixmap",
".xwd" => "image/x-xwindowdump",
".css" => "text/css",
".html" => "text/html",
".htm" => "text/html",
".js" => "text/javascript",
".asc" => "text/plain",
".c" => "text/plain",
".cpp" => "text/plain",
".log" => "text/plain",
".conf" => "text/plain",
".text" => "text/plain",
".txt" => "text/plain",
".dtd" => "text/xml",
".xml" => "text/xml",
".mpeg" => "video/mpeg",
".mpg" => "video/mpeg",
".mov" => "video/quicktime",
".qt" => "video/quicktime",
".avi" => "video/x-msvideo",
".asf" => "video/x-ms-asf",
".asx" => "video/x-ms-asf",
".wmv" => "video/x-ms-wmv",
".bz2" => "application/x-bzip",
".tbz" => "application/x-bzip-compressed-tar",
".tar.bz2" => "application/x-bzip-compressed-tar"
)
server.document-root = "/home/applications/devo/public/"
server.errorlog = "/home/applications/devo/log/lighttpd_error.log"
accesslog.filename = "/home/applications/devo/log/lighttpd_access.log"
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = (
".fcgi" => (
"rails" => (
"socket" => "/tmp/lighttpd-fcgi.socket",
"bin-path" =>
"/home/applications/devo/public/dispatch.fcgi",
"bin-environment" => ( "RAILS_ENV" => "production" ),
"min-procs" => 2,
"max-procs" => 2
)
)
)
Note
Don’t forget to do
chkconfig lighttpd on
service lighttpd start
service httpd restart
Problems?
Often problems are due to a misconfiguration of Apache or lighttpd. Lighttpd will look like it started okay even if there is a problem, which can lead to some confusion. Running service lighttpd status will help you to determine if things are okay there. If you get a message like: lighttpd dead but subsys locked Something is wrong. Check very carefully that all of the paths are correct (and that they exist) in the configuration file.
Credits
thanks to dadro
mods to doc and some fixes by LeahCunningham