14

cap production unicorn:start" "を実行しようとすると、次のエラーが表示されます

F, [2013-07-12T04:36:18.134045 #28998] FATAL -- : error adding listener addr=0.0.0.0:80
/home/ec2-user/apps/foo_prod/shared/bundle/ruby/2.0.0/gems/unicorn-4.6.3/lib/unicorn/socket_helper.rb:147:in `initialize': Permission denied - bind(2) (Errno::EACCES)

次のコマンドを手動で実行すると、問題なく動作します。ここで何が問題になる可能性がありますか?

rvmsudo unicorn_rails -c config/unicorn/production.rb -D --env production
4

4 に答える 4

8

@Iuri G.による回答は、理由と可能な解決策を提供します。

ポート 80 で Unicorn を実行する非常にやむを得ない理由がない限り、それを 3000 などのより高いポート (>1024) に変更することをお勧めします。これで問題が解決します。

それが一般に公開されているアプリケーションである場合、Unicorn を圧倒し、アプリケーションをエンド ユーザーが利用できないようにするのは簡単すぎます。そのような場合、Unicorn をプロキシ (Nginx など) の背後に置いてください。プロキシはポート 80 にあり、Unicorn はより高いポートにあります。

于 2013-07-22T03:57:11.130 に答える
4

私の開発環境では、RubyMine を使用して、最近これに遭遇しました。

SSH を使用してポート 80 を 8080 にリダイレクトしました。

sudo ssh -t -L 80:127.0.0.1:8080 user@0.0.0.0
于 2014-07-02T17:50:07.573 に答える