如何在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是用户指定的。 它无法在root中找到rails吗?

我也试过下面的代码:

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
mlzboy asked 2019-09-11T08:14:13Z
5个解决方案
204 votes
rvmsudo rails server -p 80
iain answered 2019-09-11T08:14:20Z
21 votes

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

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

另一种选择是:

rvmsudo rails server -p 80

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

Dinesh Saini answered 2019-09-11T08:14:58Z
7 votes

打算建议

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

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

  1. 确保sshd在Mac上运行。 (System Prefs => Sharing =>远程登录选中)
  2. 确保Password:作为非root用户在端口3000上运行
  3. 打开一个新终端并......

    Password:

(顺便说一下,在上面的行中将副本''减少为单数',我无法弄清楚它是如何在这里正确逃脱的。)

第一个Password:是您的root用户,第二个是whoami返回的任何人的密码。

虽然你可能想安装Phusion Passenger并在你当地的Apache下进行设置。 除非你只是想快速演示一些东西,当然这不是一个永久的解决方案。

cfeduke answered 2019-09-11T08:16:17Z
1 votes

如果您使用的是RVM,并且进行了默认设置,则不应使用sudo

只是:

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

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

Swanand answered 2019-09-11T08:16:51Z
-1 votes

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

rails s -p 80

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

uma answered 2019-09-11T08:17:21Z
translate from https://stackoverflow.com:/questions/4351844/how-to-run-rails-s-p80-on-80-port