在我的生产服务器上,我从RVM迁移到了rbenv。我使用"rvm implode“卸载了rvm,并安装了rbenv、ruby 1.9.2、rails、passenger和nginx-module。除了如下更改nginx.conf之外,我没有修改我的原始passenger_root:
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;现在,当我尝试运行我的应用程序时,我在error.log中看到以下错误:
[error] 1291#0: *105 open() "/home/passenger/grabber/current/public/view" failed (2: No such file or directory)这清楚地表明passenger尚未启动,我的rails应用程序未被识别。当我尝试手动启动passenger时,我得到以下错误:
[ 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'我已经安装了几次nokogiri,我可以在我的gem列表中看到nokogiri。我不确定为什么迁移到rbenv会破坏我的乘客。
发布于 2011-10-24 20:35:51
passenger和rbenv之间似乎没有兼容性(在你搬起石头砸自己的脚之前,请确保你知道这一点)-所以我删除了rbenv,并回到了RVM……
发布于 2011-12-23 03:09:33
可以使用rbenv、nginx和passenger。有些已经进行了系统范围的安装。http://blakewilliams.me/blog/4-system-wide-rbenv-install
我目前正在我的开发环境上进行测试,因此,假设您已经安装了rbenv,并且在.bashrc中具有正确的rbenv初始化
gem install passenger
rbenv rehash
sudo bash -c "source ~/.bashrc && passenger-install-nginx-module"您必须使用gem install passenger才能获得垫片。执行bundle install来安装passenger不会给你这些。
最后:
passenger-config --root将为您提供passenger_root路径和:
rbenv which ruby您的passenger_ruby路径。
乘客填充程序指向可执行文件,但passenger_root必须是文件夹的路径。我试过使用红宝石垫片,但它不起作用。我还没有深入了解其中的原因。
顺便说一句,我的Gemfile中确实有nokogiri宝石。哦,另外,如果你有.rvmrc和/或config/setup_load_paths.rb,将它们作为乘客自动加载捆绑包删除应该是安全的。
我还需要对此做更多的测试,但到目前为止还不错。
https://stackoverflow.com/questions/7868090
复制相似问题