“没有这样的文件来加载 - 捆扎机/设置”阿帕奇/乘客服务器上(“no such file to l

2019-08-01 23:55发布

我想部署我第一次的Rails应用程序的草案。 它在我的本地的WEBrick服务器上的伟大工程。

但是,在运行的Apache2和客运我的Ubuntu VPS,当我浏览到我的浏览器应用程序,我得到:

Error message:
no such file to load -- bundler/setup
Exception class:
LoadError

用下面的回溯:

0   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `gem_original_require'
1   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `require'
2   /home/user/public/foo.com/config/boot.rb    6   
3   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `gem_original_require'
4   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `require'
5   /home/user/public/foo.com/config/application.rb 1   
6   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `gem_original_require'
7   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `require'
8   /home/user/public/foo.com/config/environment.rb 2   
9   /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `gem_original_require'
10  /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb    36  in `require'
11  config.ru   3   
12  /usr/lib/ruby/vendor_ruby/rack/builder.rb   51  in `instance_eval'
13  /usr/lib/ruby/vendor_ruby/rack/builder.rb   51  in `initialize'
14  config.ru   1   in `new'
15  config.ru   1   

该应用程序是用Ruby v1.9.3内置(或因此我认为),我已经安装在Ubuntu(在应用程序的根, ruby -v返回ruby 1.9.3p286 (2012-10-12 revision 37165) [i686-linux] )。

按这个问题 ,我已经运行gem install bundlebundle install的应用程序根。 我还导入了正确的gemset从我的本地机器的VPS应用程序根。

按这个问题 ,我试图改变创业板设置为/home/user/.rvm/gems/ruby-1.9.3-p286@foo (其中,foo是使用宝石的这个名字),但这只是做了回溯更长。

任何帮助进一步排除此将不胜感激!

编辑:我终于重新安装滑轨,客运和红宝石(但不是RVM)之前卸载轨,RVM,红宝石(RVM一个版本)客运得到了我的应用程序运行。

Answer 1:

如何设置正确的值

如果你不知道什么价值设置passenger_ruby到,那么你就可以找出正确的值,如下所示。

首先,找出位置的乘客配置工具,并注意到它:

    which passenger-config
    /opt/passenger/bin/passenger-config

接下来,启动Ruby解释器(如果适用,在宝石)要使用。 例如,如果你在RVM和你使用Ruby 2.2.1,您可能需要运行此:

    rvm use 2.2.1

最后,调用乘客的配置与它的完整路径,传递--ruby命令的参数:

    /opt/passenger/bin/passenger-config --ruby-command
    passenger-config was invoked through the following Ruby interpreter:
      Command: /usr/local/rvm/wrappers/ruby-1.8.7-p358/ruby
      Version: ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
      To use in Apache: PassengerRuby /usr/local/rvm/wrappers/ruby-1.8.7-   p358/ruby
      To use in Nginx : passenger_ruby /usr/local/rvm/wrappers/ruby-1.8.7-p358/ruby
      To use with Standalone: /usr/local/rvm/wrappers/ruby-1.8.7-p358/ruby /opt/passenger/bin/passenger start

    ## Notes for RVM users
    Do you want to know which command to use for a different Ruby interpreter? 'rvm use' that Ruby interpreter, then re-run 'passenger-config --ruby-command'.

输出告诉你什么值来设置。

现在转到passenger.conf在/ etc / apache2的/ MODS的可用目录和上面所示糊需要的行。

现在执行下面的命令和它的工作对我来说,

    a2dismod passenger
    a2enmod passenger
    service apache2 restart


Answer 2:

你改变/etc/apache2/mods-available/passenger.conf改变路径,以红宝石1.9.3?

不要忘了a2dismod passengera2enmod passenger一旦你做到这一点。



Answer 3:

尝试在您的虚拟主机的配置文件设置GEM_HOME:

<VirtualHost *:80>
  ServerName foo.com
  SetEnv GEM_HOME /home/user/.rvm/gems/ruby-1.9.3-p286
  DocumentRoot /home/user/public/foo.com/public
  <Directory /home/user/public/foo.com/public>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>

这个问题似乎是,当你执行bundle install它使用RVM红宝石,当你执行客运它仍然使用了红宝石,而1.8



文章来源: “no such file to load — bundler/setup” on Apache/Passenger server