【问题标题】:Setting up Ruby on Rails 4 on a Dreamhost shared server在 Dreamhost 共享服务器上设置 Ruby on Rails 4
【发布时间】:2014-10-24 06:16:47
【问题描述】:

所以我是 Ruby/Rails 的新手,并开始在我自己的计算机上使用最新版本编写一个小应用程序。我目前通过 Dreamhost 共享托管,并且到了我想尝试在子域上部署我拥有的东西的地步,我使用新用户设置了该子域。不幸的是,我没有意识到 Ruby 和 Rails 的默认版本已经过时了,所以我开始寻找更新它的方法。一些谷歌搜索,我偶然发现了一些说明,似乎他们应该知道答案:

RAILS 4.0.0 WITH RUBY 2.0 ON A DREAMHOST SHARED SERVER

起初看起来好像它正在工作,ruby 和 rails 都安装得很好并且开始指向最新版本。不幸的是,当我尝试执行最后步骤并设置测试应用程序时,每次都会返回 500 错误。

Rails application failed to start properly

我浏览了我的目录寻找日志文件,并在我的 home/user/logs/subdomain.domain.com/http/error.log 文件中找到了以下内容:

[Thu Oct 23 15:11:41 2014] [error] [client 24.93.22.1] 由于可能的配置错误,请求超出了 10 个内部重定向的限制。如有必要,使用“LimitInternalRecursion”增加限制。使用“LogLevel debug”获取回溯。

查看 FCGI 和 Rails 的 dreamhost wiki,建议在调试时从控制台运行我的 dispatch.fcgi 并查看它吐出的错误。当我这样做时,似乎什么都没有发生,就像它以某种方式陷入无限循环,直到我第二次按 Enter 键,此时我返回命令提示符。这是我的 dispatch.fcgi 文件,我不太明白这里发生了什么,因为我几乎只是从我发布的第一个链接中复制并粘贴它,我以前从未做过这样的事情。

#!/home/user/ruby/bin/ruby
ENV['RAILS_ENV'] = 'development'
ENV['HOME'] ||= `echo ~`.strip
ENV['GEM_HOME'] = File.expand_path('~/.gems')
ENV['GEM_PATH'] = File.expand_path('~/.gems')
require 'fcgi'
require File.join(File.dirname(__FILE__), '../config/environment.rb')
class Rack::PathInfoRewriter
  def initialize(app)
    @app = app
  end
  def call(env)
    env.delete('SCRIPT_NAME')
    parts = env['REQUEST_URI'].split('?')
    env['PATH_INFO'] = parts[0]
    env['QUERY_STRING'] = parts[1].to_s
    @app.call(env)
  end
end

这也是我创建并放入主/用户文件夹的 .htaccess 文件,这也是我不太了解的直接复制/粘贴作业。

<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
</IfModule>
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
</IfModule>
Options +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ public/dispatch.fcgi/$1 [QSA,L]
ErrorDocument 500 "Rails application failed to start properly"

所以,我意识到 Dreamhost 共享服务器可能不是运行 Rails 的最佳环境,但它是我目前所拥有的,如果我能让它工作,我会很高兴。即使没有办法解决它,我什至会在这一点上解决只是了解到底发生了什么,因为我今天大部分时间都在用头撞墙,在互联网上跑来跑去试图弄清楚我到底在做什么。

【问题讨论】:

    标签: ruby-on-rails-4 dreamhost


    【解决方案1】:

    我也遇到了同样的错误。

    在我的 Gemfile 中使用 gem "fcgi" 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-06
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 2011-06-23
      • 2017-01-25
      • 2011-02-24
      相关资源
      最近更新 更多