在ubuntu上用rvm 布属ree + apache2 + passenger

环境:

ubuntu server 10.04
rvm 1.0.11
rails3
ruby 1.8.7 (2010-04-19 patchlevel 253)
passenger (2.2.15)
apache2


一、安装rvm
1.

bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

 

 2. 在~/.bashrc最后添加

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

 

这个看一下官方的文档即可。


二、安装ree及rails

1. 安装依赖

sudo apt-get install build-essential bison openssl libreadline5 libreadline-dev curl git-core zlib1g zlib1g-dev libssl-dev vim libsqlite3-0 libsqlite3-dev sqlite3 libreadline5-dev libreadline6-dev libxml2-dev git-core subversion autoconf

 

2. 安装ree

rvm install ree

 

3. 切换到ree

rvm list
rvm ree

 

(习惯给单独建个gem了,我还有其他的ruby版本,统统建了一个.)

rvm gemsets create rails3
rvm ree@rails3

 

 

4. 安装rails

gem install rails

 

5. 这时建个工程之类,再bundle install

 

 

三、安装apache2,最简单的一步

sudo apt-get install apache2

 


四、安装passenger
(这里可以去参考官方的安装文档)http://rvm.beginrescueend.com/integration/passenger/
1.

rvm wrapper ree@rails3 passenger

 

2.

gem install passenger

 
这一步会有一些提示,要你装依赖之类,照做就是了

 

3.

rvmsudo passenger-install-apache2-module

 

五、配置apache+passenger
安装passenger其实有提示,照做就行了

1. 将以下这些配置加到apache的配置。
加到/etc/apache2/apache2.conf最后即可,大家的可能不一样

LoadModule passenger_module /home/xiao/.rvm/gems/ree-1.8.7-2010.02@rails3/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /home/xiao/.rvm/gems/ree-1.8.7-2010.02@rails3/gems/passenger-2.2.15
PassengerRuby /home/xiao/.rvm/rubies/ree-1.8.7-2010.02/bin/ruby

 

 

2. 新建一个/etc/apache2/sites-available/xxx文件,内容如下:

<VirtualHost *:80>
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
      <Directory /somewhere/public>
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      </Directory>
   </VirtualHost>

 

 

然后sudo a2ensite xxx

3. 重启apache


六、总结:

基本上这样就可以了,不过到后来发现有个问题,就是用了自己的gemset之后,报如下错误:

Passenger  no such file to load -- bundler

 

解决方法
1.

rvm wrapper ree@rails3 passenger

 

 2. 将apache2.conf最后一句改为:

#PassengerRuby /home/xiao/.rvm/rubies/ree-1.8.7-2010.02/bin/ruby
PassengerRuby /home/xiao/.rvm/bin/passenger_ruby

 
3. 这句在官网有讲,但好像用了这个wrapper之后,不必了。
就是在项目下的config.ru中指定gem_home

ENV["GEM_HOME"]=%x{"source ~/.bashrc; rvm ree@rails3 ; rvm gemdir"}.strip

 

你可能感兴趣的:(apache,git,ubuntu,Ruby,Rails)