在 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:in
require' 来自 /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:66:ineach' 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:ineach' 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: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' 来自 /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: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
【问题讨论】:
为什么不贴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