Por padrão,
rails s #running on 3000 port
Agora quero executá-lo na porta 80. Então, tentei:
sudo rails -s -p80
Mas gerou um erro:
mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo rails s -p80
sudo: rails: command not found
Usei o rvm para instalar o ruby & rails. Parece que o rvm é especificado pelo usuário. Não é possível encontrar trilhos na raiz?
Eu também tentei o código abaixo:
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
fonte
fonte
rvmsudo
o sudo mais o carregamento do rvm como sudo.socket.rb:206:in
vínculo ': Endereço já em uso - bind (2) para 0.0.0.0:80 (Errno :: EADDRINUSE) `erroBasta encaminhar a solicitação da porta 80 para 3000 usando o comando abaixo:
Outra opção é:
No entanto, lembre-se de liberar esta porta do Apache ou outros serviços que a consomem normalmente. Além disso, não tenho certeza se dar permissão sudo para RVM pode ter algum problema de segurança ou não.
fonte
-I
por-D
, entãosudo iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
. As respostas aqui fornecem mais detalhes: serverfault.com/questions/159544/undoing-port-forwarding .Ia sugerir
mas ainda tenta usar o gemset global e não o gemset do projeto do RVM. Assim...
rails s
estar executando na porta 3000 como seu usuário não rootAbra um novo terminal e ...
me=``whoami``; sudo ssh -L 80:127.0.0.1:3000 -l $me -N localhost
(BTW, reduza as duplicatas a singulares na linha acima, não consigo descobrir como escapar isso corretamente aqui.)
O primeiro
Password:
é o seuroot
usuário, o segundo é a senha de quemwhoami
retorna.Embora você provavelmente queira instalar o Phusion Passenger e configurá-lo em seu Apache local. A menos que você esteja apenas tentando demonstrar algo bem rápido e isso não seja uma solução permanente, é claro.
fonte
/usr/bin/which rails
caso rails tenha oSe você estiver usando RVM e tiver feito a configuração padrão, não deve usar
sudo
.Somente:
No entanto, 80 é uma porta privilegiada, portanto, você precisa executar como root e deve seguir as instruções para a instalação multiusuário do RVM.
fonte
você pode iniciar o servidor na porta 80
Se a porta 80 não ligar (outros processos não estão usando a porta 80).
fonte