默认情况下,
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&轨道。似乎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
答案 0 :(得分:205)
rvmsudo rails server -p 80
答案 1 :(得分:21)
使用以下命令将请求从端口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权限可能有任何安全问题?
答案 2 :(得分:7)
打算建议
rails=`which rails` ; sudo $rails server -p 80
但仍然尝试使用全局gemset而不是RVM中的项目gemset。所以......
rails s
作为非root用户打开一个新终端并......
me=``whoami``; sudo ssh -L 80:127.0.0.1:3000 -l $me -N localhost
(顺便说一句,在上面的行中,将复制的'减少为单数',我无法弄清楚它是如何正确地逃避它的。)
第一个Password:
是您的root
用户,第二个是whoami
返回任何人的密码。
虽然您可能希望安装Phusion Passenger并在本地Apache下进行设置。除非你只是试图快速演示一些东西,当然这不是一个永久的解决方案。
答案 3 :(得分:1)
如果您使用的是RVM,并且进行了默认设置,则不应使用sudo
。
只需:
mlzboy@mlzboy-MacBook ~/my/b2c2 $ rails server -p 80
但是,80是特权端口,因此您需要以root身份运行,并且您将按照R Multi-User installation的说明进行操作。
答案 4 :(得分:-1)
您可以在端口80上启动服务器
rails s -p 80
如果端口80未绑定(其他进程未使用端口80)。