[ruby-on-rails] 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을 사용하여 루비 및 레일을 설치했습니다. 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



답변

rvmsudo rails server -p 80


답변

아래 명령을 사용하여 포트 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 권한을 부여하는 데 보안 문제가 있는지 확실하지 않습니까?


답변

제안하려고했다

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

하지만 여전히 RVM의 프로젝트 gemset이 아닌 전역 gemset을 사용하려고합니다. 그래서…

  1. sshd가 Mac에서 실행 중인지 확인하십시오. (시스템 환경 설정 => 공유 => 원격 로그인 확인)
  2. rails s루트가 아닌 사용자로 포트 3000에서 실행 중인지 확인하십시오.
  3. 새 터미널을 열고 …

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

(BTW는 중복`를 위의 줄에서 단수로 줄입니다. 여기서 어떻게 적절하게 이스케이프하는지 알 수 없습니다.)

첫 번째 Password:root사용자이고 두 번째는 whoami반환 하는 사람의 비밀번호입니다 .

Phusion Passenger를 설치하고 로컬 Apache에서 설정하고 싶을 수도 있습니다. 당신이 무언가를 빠르게 시연하려고하는데 이것은 물론 영구적 인 해결책이 아니라면 말입니다.


답변

RVM을 사용하고 있고 기본 설정을 수행 한 경우 sudo.

다만:

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

그러나 80은 권한이있는 포트이므로 루트로 실행 해야 하며 RVM의 다중 사용자 설치 지침을 따라야합니다 .


답변

포트 80에서 서버를 시작할 수 있습니다.

rails s -p 80

포트 80이 바인딩되지 않는 경우 (다른 프로세스가 포트 80을 사용하지 않음).


답변