rvm+ree+rails搭建用户管理平台,passenger+nginx发布

问题1:使用rvm安装ree以及安装rails?

答:

rvm notes

    查看rvm相关信息

rvm install ree

    可能遇到缺少依赖的问题,可以查看.rvm/log/xxx/install.log提供的解决方案,例如:

sudo apt-get install libreadline5-dev

安装rails

rvm ree
gem install rails

问题2:rails搭建用户管理平台?

答:

使用restful-authentication rails plugin进行用户管理开发

安装方法

cd vendor/plugins
git clone git://github.com/Satish/restful-authentication.git restful_authentication
cd restful_authentication, rm -fr .git

使用方法

回到rails app

bundle install
rails g authenticated user sessions
rake db:create
rake db:migrate

试用

可能会遇到uninitialized constant ApplicationController::AuthenticatedSystem的错误

原因:rails3中不会自动load lib目录下的文件

解决方案1

#在application_contoller.rb file添加:
require 'lib/authenticated_system.rb'

解决方案2

#在initializers目录下创建一个custom_requires.rb
#在这个文件中添加:
 require 'authenticated_system.rb'
  

解决方案3

#在application.rb中添加:
config.autoload_paths << "#{Rails.root}/lib"
rails s

访问:http://127.0.0.1:3000/register

问题3:使用nginx+passenger来部署rails项目?

答:

安装passenger和nginx

gem install passenger

通过passenger-install-nginx-module命令来安装nginx

根据安装说明一步一步安装,可能会遇到权限的问题,修改目录的权限为当前用户

配置nginx

在nginx所在目录/conf/nginx.conf,在http段加上:

http{
	...
	passenger_root ${所在目录}/passenger;
	passenger_ruby ${所在目录}/ruby;
 
	server {
		listen 80;
		server_name app1;
		root app1/public;
		passenger_enabled on;
		rails_env development;
   	}
 
	server {
		listen 80;
		server_name app2;
		root /app2/public;
		passenger_enabled on;
		rails_env development;
   	}
	...
}

还可以使用脚本控制

在.bashrc中添加

alias sn='sudo /usr/local/nginx/sbin/nginx' 
alias kn='sudo kill `cat /usr/local/nginx/logs/nginx.pid `' 
alias rn='kn; sn'

还可以直接通过项目名称访问

在/etc/hosts中添加

127.0.0.1 app1
127.0.0.1 app2
 

ps:

http://envylabs.com/

相关推荐