Por defecto,
rails s #running on 3000 port
Ahora quiero ejecutarlo en el puerto 80. Así que intenté:
sudo rails -s -p80
Pero arrojó un error:
mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo rails s -p80
sudo: rails: command not found
Usé rvm para instalar ruby & rails. Parece que rvm lo especifica el usuario. ¿No puede encontrar rieles en la raíz?
También probé el siguiente código:
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
ruby-on-rails
ruby-on-rails-3
mlzboy
fuente
fuente
rvmsudo
sudo más carga rvm como sudo.socket.rb:206:in
enlace ': Dirección ya en uso - bind (2) para 0.0.0.0:80 (Errno :: EADDRINUSE) `errorSimplemente reenvíe la solicitud del puerto 80 al 3000 usando el siguiente comando:
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
Otra opcion es:
rvmsudo rails server -p 80
Sin embargo, recuerde liberar este puerto de Apache u otros servicios que consumen este puerto normalmente. Además, no estoy seguro de que dar permiso de sudo a RVM pueda tener algún problema de seguridad o no.
fuente
-I
por-D
, entoncessudo iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
. Las respuestas aquí son más detalladas: serverfault.com/questions/159544/undoing-port-forwarding .Iba a sugerir
rails=`which rails` ; sudo $rails server -p 80
pero eso todavía intenta usar el conjunto de gemas global y no el conjunto de gemas del proyecto de RVM. Entonces...
rails s
esté ejecutando en el puerto 3000 como su usuario no rootAbra una nueva terminal y ...
me=``whoami``; sudo ssh -L 80:127.0.0.1:3000 -l $me -N localhost
(Por cierto, reduzca los duplicados a singulares en la línea anterior, no puedo entender cómo escapar correctamente aquí).
El primero
Password:
es suroot
usuario, el segundo es la contraseña para quienwhoami
regrese.Aunque probablemente desee instalar Phusion Passenger y configurarlo en su Apache local. A menos que solo esté intentando hacer una demostración de algo realmente rápido y, por supuesto, esta no es una solución permanente.
fuente
/usr/bin/which rails
en caso de que los rielesSi está utilizando RVM e hizo la configuración predeterminada, no debería utilizar
sudo
.Sólo:
mlzboy@mlzboy-MacBook ~/my/b2c2 $ rails server -p 80
Sin embargo, 80 es un puerto privilegiado, por lo que debe ejecutarlo como root y deberá seguir las instrucciones para la instalación multiusuario de RVM.
fuente
puede iniciar el servidor en el puerto 80
rails s -p 80
Si el puerto 80 no se enlaza (otros procesos no están usando el puerto 80).
fuente