【问题标题】:Web application could not be started Passenger Error (Apache2) - Referencing Non-Existing Ruby PatchWeb 应用程序无法启动乘客错误 (Apache2) - 引用不存在的 Ruby 补丁
【发布时间】:2013-12-22 18:01:52
【问题描述】:

使用最新版本的 RVM 从 p247 更新到 Ruby 2.0.0 (P353) 的最新补丁后,我遇到了问题。这是我的原始问题的链接,在该问题中我遇到了旧补丁丢失的 RVN 环境文件,该旧补丁不再存在于我的系统中。 RVM 已得到纠正,该问题消失了。

ERROR: Missing RVM environment file After Doing rvm upgrade command - Passenger 4.0.23

我继续使用我的 Passenger Enterprise 帐户中的 gem 文件安装了最新版本的 Passenger 4.0.29。我能够安装passenger-install-apache2-module。但是,当我尝试启动我的应用程序时,又遇到了另一个错误。

An error occurred while starting up the preloader. It exited before signaling successful startup back to Phusion Passenger. Please read this article for more information about this problem.

Raw process output:

/Users/server1/.rvm/gems/ruby-2.0.0-p353@LightBeCorp_Rails4Ruby2/gems/json-1.8.1/lib/json/ext/parser.bundle: [BUG] Segmentation fault
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]

当 p247 不再在我的系统中时,它看起来仍然存在问题。 P247 仅显示在我上面发布的声明中的“乘客错误”页面上。其他所有参考均针对 p353。我的猜测是它可能在 parser.bundle 文件中。但是我不知道用什么编辑器打开它。我尝试了 Xcode,但一无所获。

这是我在配置文件中的乘客语句:

LoadModule passenger_module /Users/myusername/.rvm/gems/ruby-2.0.0-p353@mygemset/gems/passenger-enterprise-server-4.0.29/buildout/apache2/mod_passenger.so
PassengerRoot /Users/myusername/.rvm/gems/ruby-2.0.0-p353@mygemset/gems/passenger-enterprise-server-4.0.29
PassengerDefaultRuby /Users/myusername/.rvm/wrappers/ruby-2.0.0-p353@mygemset/ruby
PassengerDebugLogFile /var/log/apache2/passenger_error_log

这是我用于所有 Rails 应用程序的虚拟主机示例。

<VirtualHost *:80>
  ServerName www.myrailsdomain.com
  ServerAlias myrailsdomain.com
  DocumentRoot /Users/myusername/Sites/myrailsapp/public
  PassengerAppRoot /Users/myusername/Sites/myrailsapp/
  PassengerRuby /Users/myusername/.rvm/wrappers/ruby-2.0.0-p353@mygemset/ruby
  <Directory /Users/myusername/Sites/myrailsapp/public>
     Allow from all
     AllowOverride all
     Options -MultiViews
  </Directory>
</VirtualHost>

这是乘客状态的输出:

Version : 4.0.29
Date    : 2013-12-22 11:58:13 -0600
Instance: 330
----------- General information -----------
Max pool size : 6
Processes     : 0
Requests in top-level queue : 0

----------- Application groups -----------
/Users/myusername/Sites/myrailsapp1/#default:
  App root: /Users/server1/Sites/myrailsapp1/
  Requests in queue: 0

/Users/myusername/Sites/myrailsapp2/#default:
  App root: /Users/server1/Sites/myrailsapp2/
  Requests in queue: 0

/Users/myusername/Sites/myrailsapp3/#default:
  App root: /Users/server1/Sites/myrailsapp3/
  Requests in queue: 0

在查看了我在上一篇文章中引用的配置文件以及到目前为止我在此处查看的内容后,我找不到任何引用补丁 p247 的内容。我知道这是从哪里来的。我没有在网上找到任何关于在系统中不存在两个不同的 Ruby 补丁时引用的问题。

任何帮助将不胜感激。

【问题讨论】:

    标签: ruby rubygems apache2 rvm passenger


    【解决方案1】:

    开始于:

    cd /Users/myusername/Sites/myrailsapp
    rvm use ruby-2.0.0-p353@LightBeCorp_Rails4Ruby2
    

    现在尝试清理宝石:

    rvm gemset pristine
    

    如果这不起作用运行:

    rvm gemset empty
    bundle install
    

    之后,您可能需要安装属于此 gemset 的任何额外 gem(例如 passenger

    【讨论】:

    • 我做了第二个建议,重新安装了Passenger并重新启动了我的服务器。然后我从浏览器中清除了所有缓存。不幸的是,我仍然遇到同样的错误。
    • 怎么样otool -L /Users/server1/.rvm/gems/ruby-2.0.0-p353@LightBeCorp_Rails4Ruby2/gems/json-1.8.1/lib/json/ext/parser.bundle也许你需要运行:rvm ruby-2.0.0-p353@LightBeCorp_Rails4Ruby2 ; rvm gemset pristine
    • 我执行了工具命令 rvm gemset pristine 并重新安装了Passenger。问题已解决,我可以托管我的 Rails 应用程序。如果您发布最后一条评论作为答案,我会检查它。非常感谢。我认为当我在生产服务器上执行此操作时,我只会删除并重新安装 RVM,因为我只使用一个 gemset。如何删除 RVM?
    • 我在 RVM 网站上找不到任何内容。我可以删除 .rvm 文件夹并重新开始吗?
    • 我刚刚找到了关于删除 .rvm 的答案。我进行了搜索,发现它位于常见问题解答页面上的问题“所有东西都安装在哪里?”。我最初问这个问题是因为站点地图中没有说明删除 RVM 或类似内容的部分:)
    猜你喜欢
    • 2014-07-07
    • 2012-10-15
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 2019-07-31
    • 2015-12-06
    • 1970-01-01
    相关资源
    最近更新 更多