环境:
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