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


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

rails server -p 80

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

sudo rails server -p 80

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

rails server -p 1025

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

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

/библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/mysql2-0.2.7/Либ/mysql2/mysql2.набор: функции выглядит(/библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/mysql2-0.2.7/Либ/mysql2/mysql2.bundle, 9): библиотека не загружена: libmysqlclient.18.dylib (LoadError) Ссылка от: /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/mysql2-0.2.7/Либ/mysql2/mysql2.пакет Причина: картинка не найдена - /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/mysql2-0.2.7/Либ/mysql2/mysql2.пакет из /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/mysql2-0.2.7/Либ/mysql2.РБ: 8 от /Библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/упаковщик-1.0.12/Либ/упаковщик/выполнения.rb: 68: in require' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:68:inrequire' из /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/упаковщик-1.0.12/Либ/упаковщик/во время выполнения.rb: 66: in each' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:66:inrequire' из /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/упаковщик-1.0.12/Либ/упаковщик/во время выполнения.rb: 55: in each' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:55:inrequire' из /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/упаковщик-1.0.12/Либ/упаковщик.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:inrequire' из /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/railties-3.0.6/Либ/рельсы/команды.РБ: 28 от /Библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/railties-3.0.6/Либ/рельсы/команды.rb: 27: in tap' from /Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:27 from script/rails:6:inrequire' из сценария / rails: 6

2 10

2 ответа:

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

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

rvmsudo rails server -p 80

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