如何在80端口上运行轨道 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 是用户指定的。它不能在根中找到轨道吗?

我还尝试了以下代码:

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
57926 次浏览

If you are using RVM, and you did the default setup, then you shouldn't use sudo.

Just:

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

However 80 is a privileged port, so you need to run as root, and you will have follow the instructions for Multi-User installation of RVM.

Was going to suggest

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

but that still tries to use the global gemset and not the project gemset from RVM. So...

  1. Make sure sshd is running on your Mac. (System Prefs => Sharing => Remote Login checked)
  2. Make sure rails s is running on port 3000 as your non-root user
  3. Open a new terminal and...

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

(BTW reduce the duplicate `'s to singular ones in the line above, I cannot figure out how escape it properly here.)

The first Password: is your root user, the second is the password for whomever whoami returns.

Though you probably want to install Phusion Passenger and set it up under your local Apache. Unless you are just trying to demo something real quick and this is not a permanent solution of course.

rvmsudo rails server -p 80

you can start server on port 80

rails s -p 80

If port 80 does not bind(other processes is not using to port 80).

Just forward the request from port 80 to 3000 using below command:

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

Another option is:

rvmsudo rails server -p 80

However please remember to free this port from Apache or other services which consume this port normally. Also, I m not sure giving sudo permission to RVM may have any security issue or not?