我终于使用 Phusion Passenger 在我的服务器上设置了 RoR,并且显示了默认的 RoR 应用程序页面,但是当我单击“关于您的应用程序的环境”时,我收到一条错误消息,提示“无法启动 Ruby (Rack) 应用程序”在错误消息位下“无法在任何来源中找到 sqlite3-ruby-1.2.5 (Bundler::GemNotFound)”。
如果我在命令行执行“捆绑安装”,我会得到一个“使用 x (y)”样式消息的列表,其中包括:
使用 sqlite3-ruby (1.2.5)
(由于最新版本的问题,我不得不降级到 1.2.5)
我真的不明白为什么我会收到上面的错误,因为 sqlite3-ruby 显然在那里。
错误页面上的堆栈跟踪:
0 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/spec_set.rb 87 in `materialize'
1 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/spec_set.rb 81 in `map!'
2 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/spec_set.rb 81 in `materialize'
3 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/definition.rb 90 in `specs'
4 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/definition.rb 135 in `specs_for'
5 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/definition.rb 124 in `requested_specs'
6 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/environment.rb 23 in `requested_specs'
7 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb 11 in `setup'
8 /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler.rb 107 in `setup'
9 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/utils.rb 326 in `prepare_app_process'
10 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/rack/application_spawner.rb 155 in `initialize_server'
11 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/utils.rb 572 in `report_app_init_status'
12 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/rack/application_spawner.rb 153 in `initialize_server'
13 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/abstract_server.rb 204 in `start_synchronously'
14 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/abstract_server.rb 180 in `start'
15 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/rack/application_spawner.rb 128 in `start'
16 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/spawn_manager.rb 253 in `spawn_rack_application'
17 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/abstract_server_collection.rb 132 in `lookup_or_add'
18 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/spawn_manager.rb 246 in `spawn_rack_application'
19 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/abstract_server_collection.rb 82 in `synchronize'
20 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/abstract_server_collection.rb 79 in `synchronize'
21 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/spawn_manager.rb 244 in `spawn_rack_application'
22 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/spawn_manager.rb 137 in `spawn_application'
23 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/spawn_manager.rb 275 in `handle_spawn_application'
24 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/abstract_server.rb 357 in `__send__'
25 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/abstract_server.rb 357 in `server_main_loop'
26 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/lib/phusion_passenger/abstract_server.rb 206 in `start_synchronously'
27 /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/helper-scripts/passenger-spawn-server 99
编辑:
这是我的 passenger.conf 文件。
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6
PassengerRuby /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby
PassengerMaxPoolSize 2
最佳答案
您似乎安装了两个版本(ruby-enterprise-1.8.7 和 1.9.1)的 ruby 运行时。确保在同一运行时安装 sqlite3-ruby gem(和 passenger)。
您已经在 1.9.1 ruby 运行时中安装了 passenger gem,但是您将 PassengerRuby 设置为 1.8。我认为你不应该那样做。将其设置为 1.9.1。并确保您使用 ruby 1.9.1 运行 bundle install(在您的 rails 项目文件夹中),以便将所有需要的 gem 安装到 1.9.1 运行时。
PassengerRuby /path/to/1.9.1/here/bin/ruby
如果您想轻松管理不同版本的 ruby 运行时,我建议您查看 RVM
关于ruby-on-rails - 使用 Phusion Passenger 时出错 - 无法在任何来源中找到 sqlite3-ruby-1.2.5 (Bundler::GemNotFound),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5632815/