Ruby on Rails: Отказано в доступе - bind (2) для порта «0.0.0.0» 80 (Errno :: EACCES)

0

Действия по воспроизведению

  1. Я создал свою базу данных и переместился.
  2. Я запустил rails server.

Это было результатом:

[3957] Puma starting in cluster mode...
[3957] * Version 3.10.0 (ruby 2.5.1-p57), codename: Russell Teapot
[3957] * Min threads: 5, max threads: 5
    [3957] * Environment: development
    [3957] * Process workers: 4
    [3957] * Preloading application
    [3957] * Listening on tcp://0.0.0.0:80
    Exiting
    Traceback (most recent call last):
            22: from bin/rails:4:in '<main>'
            21: from bin/rails:4:in 'require'
            20: from /home/my_username/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.0/lib/rails/commands.rb:18:in '<top (required)>'
            19: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.0/lib/rails/command.rb:46:in 'invoke'
            18: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.0/lib/rails/command/base.rb:65:in 'perform'
            17: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor.rb:387:in 'dispatch'
            16: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in 'invoke_command'
            15: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/thor-0.20.0/lib/thor/command.rb:27:in 'run'
            14: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.0/lib/rails/commands/server/server_command.rb:142:in 'perform'
            13: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.0/lib/rails/commands/server/server_command.rb:142:in 'tap'
            12: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.0/lib/rails/commands/server/server_command.rb:147:in 'block in perform'
            11: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.0/lib/rails/commands/server/server_command.rb:53:in 'start'
            10: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/rack-2.0.5/lib/rack/server.rb:297:in 'start'
             9: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.10.0/lib/rack/handler/puma.rb:69:in 'run'
             8: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.10.0/lib/puma/launcher.rb:183:in 'run'
             7: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.10.0/lib/puma/cluster.rb:397:in 'run'
             6: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.10.0/lib/puma/runner.rb:144:in 'load_and_bind'
             5: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.10.0/lib/puma/binder.rb:88:in 'parse'
             4: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.10.0/lib/puma/binder.rb:88:in 'each'
             3: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.10.0/lib/puma/binder.rb:105:in 'block in parse'
             2: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.10.0/lib/puma/binder.rb:270:in 'add_tcp_listener'
             1: from /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.10.0/lib/puma/binder.rb:270:in 'new'
    /home/my_usernam/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.10.0/lib/puma/binder.rb:270:in 'initialize': Permission denied - bind(2) for "0.0.0.0" port 80 (Errno::EACCES) 
  • 1
    Rails прослушивает порт 3000 по умолчанию, возможно, вы изменили некоторые настройки, чтобы он работал вместо порта 80. Обычные пользователи не могут открывать порты ниже 1024.
  • 0
    Вам нужно будет использовать rvmsudo или его эквивалент для привязки к порту ниже 1024.
Показать ещё 2 комментария
Теги:
server

1 ответ

0

Настройте puma для использования другого порта.

# config/puma.rb
port(ENV.fetch('PORT', 3000))

В производственном наборе PORT=80, а в локальном развитии - unset PORT.

Rails прослушивает порт 3000 по умолчанию, возможно, вы изменили некоторые настройки, чтобы вместо этого запустить его на порту 80. Обычные пользователи не могут открывать порты ниже 1024. - meagar

Permission denied - bind(2) for "0.0.0.0" port 80 (Errno::EACCES) 

Только root может связывать порты ниже 1024. Не запускайте локальный сервер разработки как root ! Вместо этого настройте порт выше 1024.

  • 0
    Хм, добавление этой строки в мой файл конфигурации не изменило конечный результат.
  • 0
    Проверьте ваши переменные окружения, например. ::Rails.logger.info('My port is set to: ' + ENV['PORT'])

Ещё вопросы

Сообщество Overcoder
Наверх
Меню