4

Nginxを実行している単一のサーバー上にステージング環境と本番環境の両方を備えた小さなSinatraアプリがあります。デプロイするには、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"に設定して無駄にしようとしました。

config / deploy / 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を使用していることを追加する必要があります。

4

1 に答える 1

3

nginx内でrack_env変数を設定すると、うまくいくようです。

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

于 2012-06-22T21:55:12.567 に答える