0

当我使用 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 和端口,错误就是错误。

4

1 回答 1

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/*

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

于 2013-09-12T11:29:41.677 回答