ubuntu8.10搭建Ruby on Rails环境

https://help.ubuntu.com/community/RubyOnRails

 

以下为连接中内容,作为备份

 


Intro

 

These instructions are for Ubuntu 8.04 LTS (hardy). Instead of using apt we use gems because of what ReinH put best...

<ReinH> Let gems manage your rails package otherwise gem and apt-get will start fighting like Spock and Captain Kirk in Amok Time. If you haven't seen that episode, trust me: you don't want that.

 

Get Ruby

 

 

sudo apt-get install ruby-full build-essential

 

Server Installation

 

Now you have ruby, you already got a server included, WEBrick. You may settle with that, also because the installation is much easier, and reboots are faster. But it lacks the configuration options that apache and lighttpd offer. So if you want to have RubyOnRails running on apache or lighttpd, make sure you have installed these first.

 

Apache

 

 

sudo apt-get install apache2 apache2-mpm-prefork apache2-prefork-dev

 

Lighttpd

 

Preparing the house:

 

sudo apt-get install lighttpd libfcgi-ruby1.8

 

Installing RubyGems

 

The link below is to a specific version of RubyGems (version 1.1). You can get a later version from http://rubyforge.org/frs/?group_id=126, but it should not be really necessary because we ask RubyGems to update itself at the end. But to make it more complete, a description of RubyGems 1.2 is also included, below the install instructions of RubyGems 1.2.

 

RubyGems 1.1.0

 

 

wget http://rubyforge.org/frs/download.php/34638/rubygems-1.1.0.tgz tar xzvf rubygems-1.1.0.tgz cd rubygems-1.1.0 sudo ruby setup.rb sudo ln -s /usr/bin/gem1.8 /usr/bin/gem sudo gem update --system

 

RubyGems 1.2.0

 

 

wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz tar xzvf rubygems-1.2.0.tgz cd rubygems-1.2.0 sudo ruby setup.rb sudo ln -s /usr/bin/gem1.8 /usr/bin/gem sudo gem update --system

The below error is sometimes encountered after running sudo gem update --system.

 

/usr/bin/gem:23: uninitialized constant Gem::GemRunner (NameError)

To fix that error follow the below instructions.

 

sudo gedit /usr/bin/gem In the file find: require 'rubygems' Add the following line below the above line: require 'rubygems/gem_runner'

 

RubyGems 1.3.1

 

 

wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz tar xzvf rubygems-1.3.1.tgz cd rubygems-1.3.1 sudo ruby setup.rb sudo ln -s /usr/bin/gem1.8 /usr/bin/gem sudo gem update --system

 

Installing rails

 

We can now use RubyGems to install rails:

 

sudo gem install rails

 

Preparing for your first rails app

 

Configuration of the webserver also assumes you have by then a rails application set up. Simply enter to get that done (it will create you a first test page):

Default (sqlite3 backend):

rails /home/myuser/www/mynewapp

For a mysql back-end:

rails /home/myuser/www/mynewapp -d mysql

You will see a bunch of stuff on the shell... that should be fine (unless you see a error message). That created the rails folder with all the stuff, so now you should have something like have: /home/myuser/www/mynewapp/public

 

Configure the server

 

 

WEBrick (Ruby's server)

 

No configuring needed, everything is ready to create your first application. You can even try this step before you try launching your application via apache or lighttpd:

 

$cd /home/myuser/www/mynewapp $ruby script/server => Booting WEBrick... => Rails 2.1.0 application started on http://0.0.0.0:3000 => Ctrl-C to shutdown server; call with --help for options [2008-07-28 04:39:17] INFO WEBrick 1.3.1 [2008-07-28 04:39:17] INFO ruby 1.8.6 (2007-09-24) [2008-07-28 04:39:17] INFO WEBrick::HTTPServer#start: pid=6860 port=3000

Your application is now responding at http://0.0.0.0:3000; press Ctrl+C to stop the web server. If you get errors related to the database, you might need to install a DB connector, or create a database.

Install the sqlite3 connector:

sudo apt-get install libsqlite3-dev sudo gem install sqlite3-ruby

Or install the MySQL database and it's connector:

sudo apt-get install mysql-server mysql-client sudo apt-get install libmysql-ruby libmysqlclient-dev sudo gem install mysql

Or install the PostgreSQL database and it's connector:

sudo apt-get install postgresql-server postgresql-client sudo apt-get install libpq-dev sudo gem install pg

 

Apache

 

Run the following to install passenger, an apache module that adds support for running rails apps within apache:

 

sudo gem install passenger sudo passenger-install-apache2-module

Now you have to configure apache to point to the passenger module. Simply copy the following suggested code from the passenger-install-apache2-module installation to the end of your Apache configuration file, which can be accessed by typing in the command sudo gedit /etc/apache2/apache2.conf:

(if you are using RubyGems 1.1):

 

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-1.0.3/ext/apache2/mod_passenger.so RailsSpawnServer /usr/lib/ruby/gems/1.8/gems/passenger-1.0.3/bin/passenger-spawn-server RailsRuby /usr/bin/ruby1.8

(if you are using RubyGems 1.2):

 

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3 PassengerRuby /usr/bin/ruby1.8

(if you are using RubyGems 1.3.1):

 

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6 PassengerRuby /usr/bin/ruby1.8

Now you should point apache to the location of your Ruby app. Create something like this in /etc/apache2/sites-available/ror.myhost.com

<VirtualHost *> ServerName ror.myhost.com DocumentRoot /home/myuser/www/mynewapp/public </VirtualHost>

Alternatively, you could run rails in a specific sub uri of your current host, e.g. localhost. First, make a symbolic link to your rails public folder from with var/www (or wherever you have the root of your apache www folder), e.g.:

 

ln -s /home/myuser/www/mynewapp/public /var/www/mynewapp

In case of localhost (which is the default host with a fresh ubuntu/apache install) edit default in /etc/apache2/sites-available and add:

 

RailsBaseURI /mynewapp

murb: I had to add RailsEnv development as well to get around the 'no route found to match "/rails/info/properties" with {:method=>:get}' warning... (can someone elaborate on why?) apparently this is because /info/properties is buggy and no longer supported: http://www.ruby-forum.com/topic/161924

Save, and enable the rewrite module for apache, and register this site... and finally, restart apache.

 

sudo a2enmod rewrite sudo a2ensite ror.myhost.com sudo /etc/init.d/apache2 restart

 

Lighttpd

 

Edit lighttpd.conf, e.g.:

 

sudo kate /etc/lighttpd/lighttpd.conf

and here starts the tricky part, paste at the end of the file:

 

server.modules += ( "mod_fastcgi", "mod_rewrite" ) $HTTP["host"] == "localhost" { server.document-root = "/home/santiago/proyectos/beholder/public/" server.dir-listing = "disable" server.error-handler-404 = "/dispatch.fcgi" fastcgi.server = ( ".fcgi" => ( "localhost" => ( "min-procs" => 1, "max-procs" => 1, "socket" => "/tmp/ruby-beholder.socket", "bin-path" => "/home/santiago/proyectos/beholder/public/dispatch.fcgi", "bin-environment" => ( "RAILS_ENV" => "development" ) ) ) ) }

now run

 

sudo /etc/init.d/lighttpd restart

 

and you're set, go to http://localhost and you should see the rails index... click on the link "About your rails environment" and if you don't see a 404 or 500 error... then you're set (you should see either a rails error, or a rails message or something like that).

 

Known Problems

 

just in case you get a message like this:

 

kmin@metakmin:~/ruby_test$ gem -v 1.2.0 kmin@metakmin:~/ruby_test$ rails -v Rails 2.2.2 kmin@metakmin:~/ruby_test$ gem update --system Updating RubyGems Nothing to update kmin@metakmin:~/ruby_test$ script/server Rails requires RubyGems >= 1.3.1 (you have 1.2.0). Please `gem update --system` and try again. kmin@metakmin:~/ruby_test$

dont panic, just run:

 

sudo gem install rubygems-update sudo update_rubygems

* thanks to Tomasz Przybysz who mailed me with the problem and then with the solution

for any comments on the lighttpd install please feel free to mail me to santiago-ve@ubuntu.com

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值