Запустите 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:in
require' из /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/упаковщик-1.0.12/Либ/упаковщик/во время выполнения.rb: 66: ineach' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:66:in
require' из /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/упаковщик-1.0.12/Либ/упаковщик/во время выполнения.rb: 55: ineach' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:55:in
require' из /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/упаковщик-1.0.12/Либ/упаковщик.rb: 120: inrequire' 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' из /библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/railties-3.0.6/Либ/рельсы/команды.РБ: 28 от /Библиотека/Рубин/драгоценные камни/1.8/драгоценные камни/railties-3.0.6/Либ/рельсы/команды.rb: 27: intap' from /Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:27 from script/rails:6:in
require' из сценария / rails: 6
2 ответа:
Похоже, что драгоценный камень mysql2 не установлен во время выполнения ruby, которое используется. однако, поскольку это работает для вас без sudo, я подозреваю, что у вас установлен rvm и вы используете RVM ruby (который имеет установленный mysql) по умолчанию при обеде rails без sudo. но когда вы делаете sudo, вы, скорее всего, используете систему ruby, в которой не установлен mysql2.
Короче говоря, если вы установили rvm и используете его. просто используйте:
rvmsudo rails server -p 80