Как запустить rails s -p80 на 80 порт? - PullRequest
84 голосов
/ 04 декабря 2010

По умолчанию

 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 для установки ruby ​​& rails. Кажется, 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

Ответы [ 5 ]

205 голосов
/ 04 декабря 2010
rvmsudo rails server -p 80
21 голосов
/ 25 февраля 2015

Просто перенаправьте запрос с порта 80 на 3000, используя следующую команду:

sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000

Другой вариант:

rvmsudo rails server -p 80

Однако, пожалуйста, не забудьте освободить этот порт от Apache или других служб, которые обычно используют этот порт. Кроме того, я не уверен, что предоставление разрешения sudo для RVM может иметь какие-либо проблемы с безопасностью или нет?

7 голосов
/ 04 декабря 2010

Я собирался предложить

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

, но он все еще пытается использовать глобальный набор гемов, а не набор гемов проекта из RVM.Итак ...

  1. Убедитесь, что sshd работает на вашем Mac.(Системные настройки => Общий доступ => Удаленный вход в систему проверен)
  2. Убедитесь, что rails s работает на порту 3000 как ваш пользователь без полномочий root
  3. Откройте новый терминал и ...

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

(Кстати, приведите дубликаты `к единичным` в строке выше, я не могу понять, как избежать этого здесь).

Первый Password: - ваш root пользователь, второй - пароль для тех, кто whoami возвращает.

Хотя вы, вероятно, хотите установить Phusion Passenger и настроить его под своим локальнымApache.Если только вы не пытаетесь продемонстрировать что-то очень быстрое, и это, конечно, не постоянное решение.

1 голос
/ 04 декабря 2010

Если вы используете RVM и выполнили настройку по умолчанию, вам не следует использовать sudo.

Просто:

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

Однако 80 является привилегированным портом, поэтому вам необходимо для запуска от имени пользователя root, и вам придется следовать инструкциям для Многопользовательской установки RVM.

0 голосов
/ 24 марта 2014

вы можете запустить сервер на порту 80

rails s -p 80

Если порт 80 не связывается (другие процессы не используют порт 80).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...