【问题标题】:Rails on Bluehost: "Connection reset by peer" mod_fcgid errorBluehost 上的 Rails:“对等方重置连接”mod_fcgid 错误
【发布时间】:2010-11-12 17:11:13
【问题描述】:

我正在将一个 Rails 站点上传到 bluehost,该站点可以在我的本地计算机上运行。不过,我无法将其配置为在 bluehost 上运行。这是我得到的错误:

 [warn] [client 74.220.197.129] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server 
 [error] [client 74.220.197.129] Premature end of script headers: dispatch.fcgi ./../config/../vendor/rails/railties/lib/rails/gem_dependency.rb:119:Warning: Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010. Use #requirement 
./../config/../vendor/rails/railties/lib/initializer.rb:271:in `require_frameworks':
RubyGem version error: rack(1.1.0 not ~> 1.0.1) (RuntimeError) from ./../config/../vendor/rails/railties/lib/initializer.rb:134:in `process' from ./../config/../vendor/rails/railties/lib/initializer.rb:113:in `send' from ./../config/../vendor/rails/railties/lib/initializer.rb:113:in `run' from ./../config/environment.rb:11 from dispatch.fcgi:21:in `require' from dispatch.fcgi:21

我已经安装了 rack 1.0.1,并且正确地重命名 .htaccess 给了我一个文件的索引列表。这似乎是一个 .htaccess 错误。这是我的 .htaccess 文件:

AddHandler fcgid-script .fcgi
AddHandler cgi-script .cgi
# For security reasons, Option followsymlinks cannot be overridden.
# Options +FollowSymLinks +ExecCGI
Options +SymLinksIfOwnerMatch +ExecCGI

RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

ErrorDocument 500 /500.html

#ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"

我做错了什么?

【问题讨论】:

  • 你使用的是什么版本的 Rails?
  • 你能发布你的 gem 列表输出吗?

标签: ruby-on-rails apache .htaccess bluehost


【解决方案1】:

好的,我通过以下操作解决了这个问题:

将其添加到 ~/.bashrc 文件中...

export GEM_HOME=$HOME/ruby/gems
export GEM_PATH=$GEM_HOME:/usr/lib64/ruby/gems/1.8
export GEM_CACHE=$GEM_HOME/cache
export PATH=$PATH:$HOME/ruby/gems/bin

...运行此命令...

gem install rails --version=2.3.5

...并将这一行添加到 environment.rb 文件的顶部...

ENV['GEM_PATH'] = '/home8/opportx0/ruby/gems:/usr/lib64/ruby/gems/1.8'

终于成功了。

【讨论】:

    【解决方案2】:

    您的应用正在寻找 Rack 1.1.0 或更高版本,它正在寻找 1.0.1

    【讨论】:

    • 我安装了机架 1.0.1,但仍然遇到同样的问题。这似乎是服务器错误,而不是 gem 错误......这适用于我的本地机器。
    • 我想我读错了。错误是说 Rack 1.1.0 不大于 1.0.1,这根本没有意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 2012-10-07
    • 2017-06-09
    • 1970-01-01
    相关资源
    最近更新 更多