【发布时间】:2013-06-14 04:41:22
【问题描述】:
cap production unicorn:start 失败并出现以下错误,尝试在端口 80 上启动我的 rails 应用程序。
F, [2013-06-14T04:33:51.420113 #13986] FATAL -- : error adding listener addr=0.0.0.0:80
/home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/gems/unicorn-4.6.2/lib/unicorn/socket_helper.rb:147:in `initialize': Permission denied - bind(2) (Errno::EACCES)
from /home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/gems/unicorn-4.6.2/lib/unicorn/socket_helper.rb:147:in `new'
from /home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/gems/unicorn-4.6.2/lib/unicorn/socket_helper.rb:147:in `bind_listen'
from /home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:229:in `listen'
from /home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:773:in `block in bind_new_listeners!'
from /home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:773:in `each'
from /home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:773:in `bind_new_listeners!'
from /home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/gems/unicorn-4.6.2/lib/unicorn/http_server.rb:141:in `start'
from /home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/gems/unicorn-4.6.2/bin/unicorn:126:in `<top (required)>'
from /home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/bin/unicorn:23:in `load'
from /home/ec2-user/apps/bdr_prod/shared/bundle/ruby/2.0.0/bin/unicorn:23:in `<main>'
设置 use_sudo true 返回以下错误
* executing "sudo -p 'sudo password: ' rm -rf /home/ec2-user/apps/bdr_prod/releases/20130517085418"
servers: ["64.433.69.129"]
[ec2-user@64.433.69.129] executing command
*** [err :: ec2-user@64.433.69.129] sudo
*** [err :: ec2-user@64.433.69.129] :
*** [err :: ec2-user@64.433.69.129] sorry, you must have a tty to run sudo
*** [err :: ec2-user@64.433.69.129]
command finished in 1542ms
【问题讨论】:
-
你是从
sudo开始的吗? -
我正在通过 capistrano 进行部署,而不是手动执行此操作。 rvmsudo 是解决方案,不知道如何通过 cap 来实现
-
你不想让一个 web 服务器(nginx、apache)在 80 端口上运行并转发到另一个端口或独角兽的套接字吗?
标签: ruby-on-rails capistrano unicorn