Я пытаюсь получить приложение "hello world", работающее на моей хостинг-службе (Dreamhost), используя rvm . Я использую rvm , чтобы я мог использовать Ruby 1.9.2 и Rails 3.1
Я признаю, что есть лучшие хостинговые среды и лучшие способы сделать это, но сейчас я подумал, что я попытаюсь изо всех сил попытаться сделать это.
У меня работает скрипт cgi, который показывает, что rvm работает нормально: http://rails.hortitude.com/foo.cgi
#!/usr/bin/env /home/hortitude/.rvm/bin/ruby-1.9.2-p290
puts "Content-Type: text/html"
puts
puts "<html>"
puts "<body>"
puts "<h1>Hello Ruby!</h1>"
puts "<p>shebang: #!/usr/bin/env /home/hortitude/.rvm/bin/ruby-1.9.2-p290</p>"
puts "<p>RUBY_VERSION: " + RUBY_VERSION + "</p>"
puts "<p>RUBY_PLATFORM: " + RUBY_PLATFORM + "</p>"
puts "<p> RUBY_RELEASE_DATE: " + RUBY_RELEASE_DATE + "</p>"
puts "</body>"
puts "</html>"
puts "</html>"
Однако мой скрипт dispatch.fcgi всегда выдает ошибку (находится в журналах ошибок)
Преждевременный конец заголовков скриптов: dispatch.fcgi
Вот мой скрипт dispatch.fcgi:
#!/usr/bin/env /home/hortitude/.rvm/bin/ruby-1.9.2-p290
ENV['GEM_HOME'] ||= '/home/hortitude/.rvm/gems/ruby-1.9.2-p290'
require 'rubygems'
require 'fcgi'
ENV['RAILS_ENV'] ||= 'production'
# Set GEM_PATH and GEM_HOME ("user" is your dreamhost user)
##ENV['GEM_HOME'] ||= '/home/user/.gems'
require 'rubygems'
Gem.clear_paths
require File.join(File.dirname(__FILE__), '../config/environment')
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(Helloworld::Application)