搬到rbenv打破乘客(nginx)

Ved*_*Ved 8 ruby-on-rails passenger nginx rbenv

我在生产服务器上从RVM移动到rbenv.我使用"rvm implode"卸载了rvm并安装了rbenv,ruby 1.9.2,rails,passenger和nginx-module.除了更改passenger_root之外,我没有修改我的originlal nginx.conf,如下所示:

1st Try:
passenger_root /root/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/passenger-3.0.9;
passenger_ruby /root/.rbenv/versions/1.9.2-p290/bin/ruby;
2nd Try:
passenger_root /root/.rbenv/shims/passenger;
passenger_ruby /root/.rbenv/shims/ruby;
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试运行我的应用程序时,我在error.log中看到以下错误:

[error] 1291#0: *105 open() "/home/passenger/grabber/current/public/view" failed (2: No such file or directory)
Run Code Online (Sandbox Code Playgroud)

这清楚地表明乘客没有启动,我的rails应用程序无法识别.当我尝试手动启动乘客时,我收到以下错误:

   [ pid=17605 thr=70022120 file=utils.rb:176 time=2011-10-23 23:40:41.917 ]: *** Exception LoadError in PhusionPassenger::Rack::ApplicationSpawner (libruby.so.1.9: cannot open shared object file: No such file or directory - /home/passenger/grabber/shared/bundle/ruby/1.9.1/gems/nokogiri-1.5.0/lib/nokogiri/nokogiri.so) (process 17605, thread #<Thread:0x858e7d0>):
from /home/passenger/grabber/shared/bundle/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
Run Code Online (Sandbox Code Playgroud)

我已经多次安装了nokogiri,我可以在我的宝石列表中看到nokogiri.我不确定为什么搬到rbenv已经打破了我的乘客.

Phi*_*ilT 21

可以使用rbenv,nginx和乘客.有些已经进行了系统范围的安装.http://blakewilliams.me/blog/4-system-wide-rbenv-install

我正在测试我的开发环境,所以,假设你已经安装了rbenv并且在你的.bashrc:你有正确的rbenv init :

gem install passenger
rbenv rehash
sudo bash -c "source ~/.bashrc && passenger-install-nginx-module"
Run Code Online (Sandbox Code Playgroud)

你必须gem install passenger得到垫片.否则bundle install安装乘客不会给你这些.

最后:

passenger-config --root
Run Code Online (Sandbox Code Playgroud)

会给你你的passenger_root道路和:

rbenv which ruby
Run Code Online (Sandbox Code Playgroud)

你的passenger_ruby道路.

乘客垫片指向可执行文件但passenger_root必须是文件夹的路径.我尝试过使用红宝石垫片,但它不起作用.我还没有挖到为什么.

顺便说一下,我的Gemfile中有nokogiri宝石.哦,如果你有.rvmrc和/或config/setup_load_paths.rb它应该是安全的删除这些作为乘客自动加载捆绑.

我仍然需要对此进行更多测试,但到目前为止还是那么好.


Ved*_*Ved -15

乘客和 rbenv 之间似乎不兼容(在搬起石头砸自己的脚之前确保你知道这一点) - 所以我删除了 rbenv 并搬回了 RVM...

  • 错误的断言。Passenger 和 rbenv 工作得很好。 (3认同)