11

我试图让我的 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): Library not loaded: 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: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需要'来自 /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来自脚本/rails:6

4

2 回答 2

23

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

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

rvmsudo rails server -p 80
于 2011-04-30T09:06:30.570 回答
0

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

于 2013-02-24T16:02:20.717 回答