在 80 端口启动 webrick(mysql2 gem 问题)

Posted

技术标签:

【中文标题】在 80 端口启动 webrick(mysql2 gem 问题)【英文标题】:Start webrick in port 80 (mysql2 gem issue) 【发布时间】: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

【问题讨论】:

为什么不贴mysql错误? 谢谢提醒!刚刚发布了错误,非常感谢! 签出:***.com/questions/4546698/… 谢谢 lobster1234!它有效! 【参考方案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,它适用于我

【讨论】:

以上是关于在 80 端口启动 webrick(mysql2 gem 问题)的主要内容,如果未能解决你的问题,请参考以下文章

Rails webrick 强制退出:未初始化的常量 WebConsole::Railtie::Middleware (NameError)

使用 rvm 在 Snow Leopard for Rails 3 上安装 mysql2 gem

WampServer的安装

Rails启动Webrick Web服务器

安装Xampp后apache无发启动,80端口被占用,怎么解决???

Mac OS普通用户启动80端口