在80端口启动webrick(mysql2 gem issue)

How*_*ang 10 permissions gem webrick mysql2 ruby-on-rails-3

我试图让我的webrick服务在80端口.我试过:

rails server -p 80
Run Code Online (Sandbox Code Playgroud)

但获得拒绝访问权限.我后来才知道使用端口1-1024需要root权限,所以我尝试了这个

sudo rails server -p 80
Run Code Online (Sandbox Code Playgroud)

但是,这次我得到一个mysql2错误.不知道这里发生了什么.我试着跑:

rails server -p 1025
Run Code Online (Sandbox Code Playgroud)

并且它工作正常,我认为它是关于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.rb:8的/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle /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'from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/ bundler/runtime.rb:66:在each' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:66:inrequire'from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:55:in require'from each' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:55:in/ Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler.rb:120:in require'from 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:in/Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:28 from/Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:27:in require'from tap' from /Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:27 from script/rails:6:inscript/rails:6

the*_*fme 23

似乎mysql2 gem没有安装在使用的ruby运行时.但是,因为这对你没有sudo工作,我怀疑你已经安装了rvm,你正在使用rvm ruby​​(安装了mysql)默认情况下在没有sudo的情况下运行rails.但是当你做sudo时,你最有可能使用没有安装mysql2的系统ruby.

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

rvmsudo rails server -p 80
Run Code Online (Sandbox Code Playgroud)