【问题标题】:Start webrick in port 80 (mysql2 gem issue)在 80 端口启动 webrick(mysql2 gem 问题)
【发布时间】:2011-08-15 23:40:36
【问题描述】:

我试图让我的 webrick 在端口 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:inrequire' 来自 /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:inrequire' 来自 /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:inrequire' 来自 /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:inrequire' 来自 /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:inrequire' 来自脚本/rails:6

【问题讨论】:

标签: ruby-on-rails-3 permissions gem webrick mysql2


【解决方案1】:

似乎在使用的 ruby​​ 运行时中没有安装 mysql2 gem。但是,由于这在没有 sudo 的情况下适用于您,我怀疑您安装了 rvm 并且在没有 sudo 的情况下使用 rvm ruby​​(安装了 mysql)默认情况下使用 rails。但是当您执行 sudo 时,您很可能使用的是没有安装 mysql2 的系统 ruby​​。

简而言之,如果您安装了 rvm 并且正在使用它。只需使用:

rvmsudo rails server -p 80

【讨论】:

  • 感谢您的回答!但是我没有在我的机器上使用 rvm。我尝试使用 sudo 权限安装 mysql2,但仍然收到错误消息。有什么想法吗?
  • 我的回答很远。你看过上面 lobster1234 发布的链接了吗? “库未加载:libmysqlclient.18.dylib (LoadError)”很可能是导致错误的原因。
  • 格栅!也许你可以发布对你有用的东西作为这个问题的答案。
  • 这也适用于 rails 2。rvmsudo script/server -p 80。谢谢!
  • 我试过这个,但我得到了Address already in use - bind(2) for 0.0.0.0:80 (Errno::EADDRINUSE) 错误。我该怎么办?
【解决方案2】:

我使用 rails server -p 8080,它适用于我

【讨论】:

    猜你喜欢
    • 2011-12-14
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    相关资源
    最近更新 更多