ruby-on-rails – rails 3.2.8 ruby?? 1.9.3 on DreamHost共享主
使用以下指南
http://spontaneousderivation.com/2012/09/30/rails-3-2-on-a-shared-dreamhost-server/ 我设法用Ruby 1.9.3启动我的Rails 3.2.8应用程序并使用fcgi在Dreamhost共享主机上运行(我知道它不是最好的解决方案,但我不想将我的应用程序降级到3.0而我缺乏技能和VPS的钱). 遵循DH维基的指南: http://wiki.dreamhost.com/RMagick http://wiki.dreamhost.com/Image_Magick#Compiling_ImageMagick_on_your_DreamHost_account 我安装了自己的ImageMagic和RMagic版本作为本地gem. 但是,当我尝试使用RMagic功能运行应用程序时,我在error.log中收到以下错误: ‘脚本标题的过早结束:dispatch.fcgi’. 当我在上传器中取消注释以下行时,我发现它正在发生: include CarrierWave::RMagick 从shell运行dispatch.fcgi不会报告任何错误. 我假设问题可能是由LD_LIBRARY_PATH或其他env变量(在DH维基中列出)引起的,但尝试将它们包含在我的.bashrc,.bash_profile和dispatch.fcgi中但没有效果. 解决方法
此解决方案自2013年3月7日起生效.我只是用它来为DH部署一个新的应用程序.
在你的gemfile中…… gem 'paperclip' 然后从您的app目录运行“bundle install”. 在你的public / dispatch.fcgi中…复制下面的代码并用你的config / application.rb模块中列出的名称替换APPNAME,用你的DH用户名替换USER,并用“which”中的输出中列出的特定ruby版本替换RUBY ruby“在DH ssh会话的命令行上. #!/home/USER/.rvm/rubies/RUBY/bin/ruby ENV['RAILS_ENV'] ||= 'production' ENV['HOME'] ||= `echo ~`.strip ENV['GEM_HOME'] = File.expand_path('~/.rvm/gems/RUBY') ENV['GEM_PATH'] = File.expand_path('~/.rvm/gems/RUBY') + ":" + File.expand_path('~/.rvm/gems/RUBY@global') 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(APPNAME::Application) 假设您有有效的RVM安装,则无需进行特殊处理即可使回形针正常工作.除了我上面提到的细节(特别是dispatch.fcgi略有改变),你可以按照本指南http://spontaneousderivation.com/2012/09/30/rails-3-2-on-a-shared-dreamhost-server/. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |