将Sinatra应用程序部署到登台环境时出现问题

时间:2012-06-22 21:14:48

标签: ruby sinatra capistrano

我有一个小型的Sinatra应用程序,在运行Nginx的单个服务器上同时具有登台和生产环境。部署我使用Capistrano和capistrano-ext轻松部署到不同的位置。

暂存环境始终使用app.rb文件中指定的生产配置运行的问题。

configure :staging do
  # staging settings
  set :foo, "bar"   # will never be set to this
end

configure :production do
  # prod settings
  set :foo, "rab"
end

我得出结论,deploy.rb文件中的capistrano:environment变量不会以任何方式配置Sinatra。我也尝试将ENV [“RACK_ENV”]设置为“staging”无效。

配置/部署/ staging.rb

server "10.10.100.16", :app, :web, :db, :primary => true
set :deploy_to, "/var/www/staging.my_app" 
set :environment, "staging"
set :env, "staging"          
ENV["RACK_ENV"] = "staging" 

有什么想法吗?

**更新:我应该补充一点,我也在使用Passenger。

1 个答案:

答案 0 :(得分:3)

在nginx中设置rack_env变量似乎可以解决问题。

http://www.modrails.com/documentation/Users%20guide%20Nginx.html#RackEnv