By default,
rails s #running on 3000 port
Now I want to run it on port 80. So I tried:
sudo rails -s -p80
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...
rails s
is running on port 3000 as your non-root userOpen 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.
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.
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?
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).
rvmsudo rails server -p 80