기본적으로,
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을 사용하려고합니다. 그래서…
- sshd가 Mac에서 실행 중인지 확인하십시오. (시스템 환경 설정 => 공유 => 원격 로그인 확인)
rails s
루트가 아닌 사용자로 포트 3000에서 실행 중인지 확인하십시오.-
새 터미널을 열고 …
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을 사용하지 않음).