如何在80端口上运行rails s -p80?

默认,

rails s #running on 3000 port 

现在我想在80端口上运行它。所以我尝试了:

  sudo rails -s -p80 

但它抛出了一个错误:

 mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo rails s -p80 sudo: rails: command not found 

我用rvm来安装ruby和rails。 看来rvm是用户指定的。 它不能在根中find轨道?

我也试过下面的代码:

 mlzboy@mlzboy-MacBook ~/my/b2c2 $ which rails /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/bin/rails mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/bin/rails s -p80 
 rvmsudo rails server -p 80 

只需使用以下命令将端口80的请求转发到3000:

 sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000 

另一个select是:

 rvmsudo rails server -p 80 

但是,请记住从Apache或其他正常使用此端口的服务中释放此端口。 另外,我不知道给RVM许可权可能有任何安全问题或不?

正在build议

 rails=`which rails` ; sudo $rails server -p 80 

但仍尝试使用全局gemset而不是RVM中的项目gemset。 所以…

  1. 确保sshd在Mac上运行。 (系统首选项=>共享=>远程login检查)
  2. 确保rails s在端口3000上作为非root用户运行
  3. 打开一个新的terminal,并…

    me=``whoami``; sudo ssh -L 80:127.0.0.1:3000 -l $me -N localhost

(顺便说一句,把上面这行中的重复单词减less为单数),我不知道如何在这里正确地转义它。

第一个Password:是你的root用户,第二个是whoami返回的密码。

虽然你可能想要安装Phusion Passenger并将其设置在你的本地Apache下。 除非你只是试图快速演示一些东西,这当然不是一个永久的解决scheme。

如果您正在使用RVM,并且执行了默认设置,那么您不应该使用sudo

只是:

 mlzboy@mlzboy-MacBook ~/my/b2c2 $ rails server -p 80 

但是80是一个特权端口,因此您需要以root身份运行,并且您将按照多用户安装 RVM的说明进行操作 。

您可以在端口80上启动服务器

 rails s -p 80 

如果端口80不绑定(其他进程不使用端口80)。