2017-10-11 58 views
0
Rails 5.1 
Ruby 2.4 
Ubuntu 16.04 
Passenger 5.1.8 

我的Gemfile没有一个乘客宝石捆扎机找不到乘客的宝石

我的Apache2虚拟主机的配置文件看起来是这样的:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName myapp.com 
    DocumentRoot "/home/utils/rails/public" 
    PassengerRuby /home/utils/.rvm/gems/ruby-2.4.2/wrappers/ruby 
    PassengerAppEnv production 
    PassengerFriendlyErrorPages on 
    <Directory "/home/utils/rails/public"> 
     Allow from all 
     Options -MultiViews 
     Require all granted 
    </Directory> 
    LogLevel warn 
    ErrorLog ${APACHE_LOG_DIR}/follower_wonk_error.log 
    CustomLog ${APACHE_LOG_DIR}/follower_wonk_access.log combined 
</VirtualHost> 


ls -l /home/utils/.rvm/gems/ruby-2.4.2/wrappers/ruby 

给我:

-rwxrwxr-x 1 utils utils 274 Oct 11 14:50 /home/utils/.rvm/gems/ruby-2.4.2/wrappers/ruby 

和mods-available/passenger.conf中有:

<IfModule mod_passenger.c> 
    PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini 
    PassengerDefaultRuby /usr/bin/passenger_free_ruby 
</IfModule> 

但是,当我做

curl http://myapp.com 

我得到一个异常。我复制了扩展的错误HTML文件,这是它的一部分:

-------- The exception is as follows: ------- 

Could not find passenger-5.1.8 in any of the sources (Bundler::GemNotFound) 
    /home/utils/.rvm/gems/ruby-2.4.2/gems/bundler-1.15.4/lib/bundler/spec_set.rb:87:in `block in materialize' 
    /home/utils/.rvm/gems/ruby-2.4.2/gems/bundler-1.15.4/lib/bundler/spec_set.rb:81:in `map!' 
    /home/utils/.rvm/gems/ruby-2.4.2/gems/bundler-1.15.4/lib/bundler/spec_set.rb:81:in `materialize' 
    /home/utils/.rvm/gems/ruby-2.4.2/gems/bundler-1.15.4/lib/bundler/definition.rb:159:in `specs' 
    /home/utils/.rvm/gems/ruby-2.4.2/gems/bundler-1.15.4/lib/bundler/definition.rb:218:in `specs_for' 
    /home/utils/.rvm/gems/ruby-2.4.2/gems/bundler-1.15.4/lib/bundler/definition.rb:207:in `requested_specs' 
    /home/utils/.rvm/gems/ruby-2.4.2/gems/bundler-1.15.4/lib/bundler/runtime.rb:109:in `block in definition_method' 
    /home/utils/.rvm/gems/ruby-2.4.2/gems/bundler-1.15.4/lib/bundler/runtime.rb:21:in `setup' 
    /home/utils/.rvm/gems/ruby-2.4.2/gems/bundler-1.15.4/lib/bundler.rb:101:in `setup' 
    /home/utils/.rvm/gems/ruby-2.4.2/gems/bundler-1.15.4/lib/bundler/setup.rb:19:in `<top (required)>' 
    /home/utils/.rvm/rubies/ruby-2.4.2/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    /home/utils/.rvm/rubies/ruby-2.4.2/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:430:in `activate_gem' 
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:297:in `block in run_load_path_setup_code' 
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:435:in `running_bundler' 
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:296:in `run_load_path_setup_code' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:100:in `preload_app' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:156:in `<module:App>' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>' 

但乘客5.1.18是存在的。

我也跑:

rvmsudo passenger-config validate-install 

和我:

Everything looks good. :-) 

用于客运和Apache

任何想法?

回答

1

如果您使用的是Apache,那么您不需要Gemfile中的require位,那就是使用rails serverhttps://www.phusionpassenger.com/library/dev/ruby/rails_integration.html#rails-server-integration

+0

那么,那么apache配置文件中的PassengerRuby /home/utils/.rvm/gems/ruby-2.4.2/wrappers/ruby指令也不需要吗? – EastsideDeveloper

+0

是的,需要。这告诉乘客使用哪个Ruby解释器。 ',要求:“phusion_passenger/rack_handler”将乘客集成到轨道服务器命令中。它们完全不相关,因为'PassengerRuby'是一个apache配置,'require'启动乘客独立。 –

+0

好的,我失去了你。我没有在任何地方使用 – EastsideDeveloper

相关问题