Как запустить рельсы s -p80 на 80 портов?

По умолчанию

 rails s #running on 3000 port

Теперь я хочу запустить его на порт 80. Поэтому я попробовал:

 sudo rails -s -p80

Но это забросило ошибку:

[email protected] ~/my/b2c2 $ sudo rails s -p80
sudo: rails: command not found

Я использовал rvm для установки рубинов и рельсов. Кажется, rvm указан пользователем. Не удается ли найти рельсы в корне?

Я также пробовал под кодом:

[email protected] ~/my/b2c2 $ which rails
/home/mlzboy/.rvm/gems/ruby-1.9.2-p0/bin/rails
[email protected] ~/my/b2c2 $ sudo /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/bin/rails s -p80

Ответ 1

rvmsudo rails server -p 80

Ответ 2

Просто отправьте запрос с порта 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 может иметь какую-либо проблему безопасности или нет?

Ответ 3

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

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

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

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

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

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

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

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

Ответ 4

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

Просто:

[email protected] ~/my/b2c2 $ rails server -p 80

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

Ответ 5

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

rails s -p 80

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