新しいRailsプロジェクトのGemfile
は以下を示します。
# Use Unicorn as the app server
gem 'Unicorn'
Rails s --help
の表示:
Usage: Rails server [mongrel, thin, etc] [options]
まだ、やっている:
Rails s Unicorn
私は得る:
/Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/rack-1.4.5/lib/rack/handler.rb:63:in `require': cannot load such file -- rack/handler/Unicorn (LoadError)
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/rack-1.4.5/lib/rack/handler.rb:63:in `try_require'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/rack-1.4.5/lib/rack/handler.rb:16:in `get'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/rack-1.4.5/lib/rack/server.rb:272:in `server'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/railties-3.2.13/lib/Rails/commands/server.rb:59:in `start'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/railties-3.2.13/lib/Rails/commands.rb:55:in `block in <top (required)>'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/railties-3.2.13/lib/Rails/commands.rb:50:in `tap'
from /Users/patrick/.rvm/gems/Ruby-1.9.3-head@keynote/gems/railties-3.2.13/lib/Rails/commands.rb:50:in `<top (required)>'
from script/Rails:6:in `require'
from script/Rails:6:in `<main>'
過去に他のプロジェクトでUnicornを使用しましたが、常にUnicorn
コマンドを実行し、設定ファイルを指定する必要がありましたが、これは少し面倒です。 Rails s...
を使用して単純に機能させるにはどうすればよいのでしょうか
これは可能ですか?
Unicorn-Rails
@Dogbertが言及したgemは、実際にUnicornをRails server
ハンドラー。
単にgem "Unicorn-Rails"
(およびRails 4.2.4、gem "rack-handlers"
)Gemfile
で、bundle install
を使用してgemをインストールすると、次を実行できます。
$ Rails server Unicorn
一度Unicorn-Rails
がインストールされている場合、Unicornがデフォルトのアプリサーバーになるはずなので、単にRails server
そして、Unicornを使用する必要があります(Gemfile
にThinやMongrelも含まれていない場合、それらは競合する可能性があり、使用していないものは削除する必要があります)。
より良いオプションは、Unicornサーバーを直接実行することです。
bundle exec Unicorn -p 3000 # default port is 8080
gem 'rack-handlers'
Rails server Unicorn
Unicornを「Rails s」として使用することは不可能だと思います。これを使って -
Gem 'Unicorn'をgemファイルに追加し、バンドルインストールを実行します。
そして、次のコマンドのいずれかを実行します-
$ユニコーン-p 3000
または
$ Unicorn_Rails -p 3000
ただし、Steven
による答えが最も簡単な方法です。
開発環境でrakeタスクを介してUnicorn
を実行します。
lib/tasks/dev_Unicorn.rake:
task :server do
# optional port parameter
port = ENV['PORT'] ? ENV['PORT'] : '3000'
puts 'start Unicorn development'
# execute Unicorn command specifically in development
# port at 3000 if unspecified
sh "cd #{Rails.root} && Rails_ENV=development Unicorn -p #{port}"
end
# an alias task
task :s => :server
実行:
rake s
リファレンス http://jing.io