我正在尝试设置乘客、Rails 和 Nginx。 Nginx 正确路由到Passenger,但是当我加载页面时出现以下错误:
cannot load such file -- bundler/setup (LoadError)
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:219:in `block in run_load_path_setup_code'
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:333:in `running_bundler'
/usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:217:in `run_load_path_setup_code'
/usr/share/passenger/helper-scripts/rack-preloader.rb:96:in `preload_app'
/usr/share/passenger/helper-scripts/rack-preloader.rb:150:in `<module:App>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:28:in `<main>'
我不明白的是:
我基本上到处都安装了 bundler,但肯定错过了一些重要的东西。
我觉得我现在已经接近掌握整个事情了,但我自己却无法阅读解决方案。
如果你去http://privateering.me:8000/您可以看到错误转储的其余部分。
最佳答案
现在是早上!我喝过咖啡!我们走吧!
What I don't understand is why there are a bunch of references to ruby 1.9.1?
正如 tessi 所提到的,对于 Ruby 1.9.3 的某些构建,路径中的 1.9.1 是正常的。这很奇怪和令人困惑,但它就是这样。这本身并不立即引起关注。
Furthermore, how can I change which user passenger runs on?
Phusion有一些很好的documentation for Phusion/Nginx其中包括所有配置参数。但这可能没有必要,因为 user-related docs会告诉你,Passenger 默认会尝试以拥有它的用户身份运行每个应用程序。
Am I supposed to install a bunch of gems on passenger's user as well?
也许。可能不是。看上面。只要有可能,就没有一个“乘客用户”。只有当用户切换不可用时,Passenger 才会回退到以单个用户身份运行(无论 nginx 配置什么)。
Why isn't this setup during installation of the nginx passenger bundle?
因为Passenger 只是一个 Multi-Tenancy 、多语言的应用程序服务器。它不知道您是在运行一个应用程序还是一百个应用程序,Ruby 或 Python,Rails 或 Sinatra 或 Merb 或自制的东西。乘客的工作是在你告诉它是什么后运行应用程序;你的工作是让每个应用程序进入可运行状态。
How does RVM complicate things? What do I need to be aware of when using RVM? Does every user in the system get the ruby version I set in RVM? How can I make it so if not?
RVM 使事情变得足够复杂。默认情况下,它以单用户为基础安装,并且仅影响单个用户。这正是它的预期用例:当我登录时,我想要一个不同的 Ruby 并且不想污染系统。由于 RVM 工作的特殊方式,还有其他复杂性。
但是 Phusion 意识到有些人会出于任何原因在生产中使用 RVM and covers that situation in the installation documentation .
通过将 RVM 排除在图片之外,可以轻松避免大多数涉及 RVM 和乘客的痛苦。除非您在一个非常奇特的平台上,否则构建现代 Ruby 是
./configure && make && make install
的问题。 .一行代码,您就在 /usr/local
中获得了一个稳定的、系统范围的 Ruby。 ,您、乘客和其他所有人都可以轻松访问。
关于ruby-on-rails - 设置乘客和铁路时的知识差距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19319812/