cloud9,rails s,权限被拒绝 - bind(2)(Errno :: EACCES)

时间:2013-03-28 07:36:32

标签: ruby-on-rails cloud9-ide

当我使用cloud9 https://docs.c9.io/running_a_rails_app.html

的文档进行操作时

最后,我写代码 rails s -p 3000 -b 0.0.0.0

然后错误显示:

/opt/rh/ruby193/root/usr/share/ruby/webrick/utils.rb:85:in `initialize': Permission denied - bind(2) (Errno::EACCES)                                                                                                                                                               
   。。。。。。                                                                                                                                                                                                                              

     Error: you may be using the wrong PORT & HOST for your server app                                                                                                                                                                                                         

Cloud9对于rails,请使用:'rails s -p $ PORT -b $ IP'
         对于Sinatra,请使用:ruby app.rb -p $ PORT -o $ IP'

无论我尝试ip和端口,错误都是错误。

1 个答案:

答案 0 :(得分:1)

我对cloud9 IDE没有任何经验,但假设您可以访问您的环境......我会尝试通过以下方式解决此问题

  1. 确保您的环境变量正确

    echo '$PORT' # should be '3000' per your question

    echo '$IP' # should be '0.0.0.0' per your question

  2. 使用rvmsudo在端口80上运行您的Web服务器(端口80,因为您的iptables可能会发生什么 - 请参阅#2)

    rvmsudo rails s -b 0.0.0.0

  3. 修改您的iptables以允许端口3000上的流量

    sudo vim /etc/sysconfig/iptables

    添加以下行:-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000:7010 -j ACCEPT

  4. 更改webrick文件的用户,群组和权限(显然会更改您的'用户'和'群组'):

    sudo chown user:group /opt/rh/ruby193/root/usr/share/ruby/webrick/*

    sudo chmod 755 /opt/rh/ruby193/root/usr/share/ruby/webrick/*

  5. 完成后,您可能希望稍后将webrick文件的权限更改为更严格的内容。