Подтвердить что ты не робот

Запустите webrick в порту 80 (проблема с mysql2 gem)

Я пытаюсь получить свою подающую службу в порту 80. Я пробовал:

rails server -p 80

но получить доступ запрещен. Позже я понял, что использование порта 1-1024 требует разрешения root, поэтому я попробовал это вместо

sudo rails server -p 80

Однако теперь я получаю ошибку mysql2 на этот раз. Не знаю, что здесь произошло. Я попытался запустить:

rails server -p 1025

и он отлично работает, я думаю, что это что-то о root и mysql2. Может ли кто-нибудь помочь?

ниже приведено сообщение об ошибке в консоли:

/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle: dlopen (/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle, 9): библиотека не загружена: libmysqlclient.18.dylib(LoadError)   Ссылка:/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle   Причина: изображение не найдено -/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle     из /Library/Ruby/Gems/ 1.8/gems/mysql2-0.2.7/lib/mysql2.rb:8     из /Library/Ruby/Gems/ 1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:68:in require' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:68:in require '     из /Library/Ruby/Gems/ 1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:66:in each' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:66:in require '     из /Library/Ruby/Gems/ 1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:55:in each' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:55:in require '     из /Library/Ruby/Gems/ 1.8/gems/bundler-1.0.12/lib/bundler.rb:120:in require' from /Users/ccool2486/Sites/fs2_test/config/application.rb:7 from /Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:28:in require '     из /Library/Ruby/Gems/ 1.8/gems/railties-3.0.6/lib/rails/commands.rb:28     из /Library/Ruby/Gems/ 1.8/gems/railties-3.0.6/lib/rails/commands.rb:27:in tap' from /Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:27 from script/rails:6:in require '     от script/рельсов: 6

4b9b3361

Ответ 1

Кажется, что гейм mysql2 не установлен в используемом рубине. однако, поскольку это работает для вас без sudo, я подозреваю, что у вас установлен rvm, и вы используете rvm ruby ​​(который имеет mysql установлен) по умолчанию при обедовании рельсов без sudo. но когда вы делаете sudo, вы, скорее всего, используете системный рубин, у которого не установлен mysql2.

так короче, если вы установили rvm и используете это. просто используйте:

rvmsudo rails server -p 80

Ответ 2

Я использую сервер rails -p 8080, он работает для меня