我遇到以下问题: 在我的托管(www.site5.com)上,ruby相当老旧 - 1.8.7,服务器在Apache下运行,Phusion Passenger用于部署。 支持团队安装了一个RVM,以便我可以使用ruby 1.9.3。然而,即使安装一个简单的Rails应用程序,服务器报告dispatch.fcgi和rails for phusion
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
的问题是在配置dispatch.fcgi,并将.htaccess文件这我在这里:
dispatch.fcgi
#!/home/foo/.rvm/rubies/ruby-1.9.3-p392/bin/ruby
ENV['RAILS_ENV'] ||= 'production'
ENV['HOME'] ||= `echo ~`.strip
ENV['GEM_HOME'] = File.expand_path('~/.rvm/gems/ruby-1.9.3-p392')
ENV['GEM_PATH'] = File.expand_path('~/.rvm/gems/ruby-1.9.3-p392') + ":" +
File.expand_path('~/.rvm/gems/[email protected]')
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
Rack::Handler::FastCGI.run Rack::PathInfoRewriter.new(try::Application)
.htaccess
AddHandler application/x-httpd-php52 .php
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
</IfModule>
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
</IfModule>
Options +FollowSymLinks +ExecCGI
#Change to your environment
RailsEnv production
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/stats/(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/failed_auth.html$
RewriteRule .* - [L]
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
支持团队努力尝试,但到目前为止我们h AVE找不到出路......
(UPDATE。 :......刚发现这个错误使得资产变得怪异 - 它与此无关,所以上述应该是一个适当的解决方法,从我目前所知道的情况来看)。 – inspironen 2013-06-22 22:30:56
感谢您的想法!工作人员以某种方式解决了这个问题(感谢他们),所以实际上我对我来说仍然是一个谜。对于解决问题的其他人来说,你的答案可能会有用。 – Andrew 2013-06-23 12:52:50