2013-06-24 91 views
0

我试图将我的Rails项目推到Heroku上。它给出了关于fcgi的一些错误。在我的机器上,我可以很好地安装fcgi。我可以在我的机器上无误地执行gem install fcgi -v '0.8.8'在Heroku上安装fcgi失败

-----> Ruby/Rails app detected 
-----> Using Ruby version: ruby-2.0.0 
-----> Installing dependencies using Bundler version 1.3.2 
    Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 
    Fetching gem metadata from http://rubygems.org/......... 
    Fetching gem metadata from http://rubygems.org/.. 
    Installing rake (0.9.2.2) 
    Installing abstract (1.0.0) 
    Installing activesupport (3.0.11) 
    Installing builder (2.1.2) 
    Installing i18n (0.5.0) 
    Installing activemodel (3.0.11) 
    Installing erubis (2.6.6) 
    Installing rack (1.4.0) 
    Installing rack-mount (0.7.1) 
    Installing rack-test (0.6.1) 
    Installing tzinfo (0.3.33) 
    Installing actionpack (3.0.11) 
    Installing mime-types (1.16) 
    Installing polyglot (0.3.1) 
    Installing treetop (1.4.10) 
    Installing mail (2.4.4) 
    Installing actionmailer (3.0.11) 
    Installing arel (2.0.9) 
    Installing activerecord (3.0.11) 
    Installing activeresource (3.0.11) 
    Installing bigdecimal (1.1.0) 
    Installing fcgi (0.8.8) 
    Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 
    /tmp/build_ljhotq40guh7/vendor/ruby-2.0.0/bin/ruby extconf.rb 
    checking for fcgiapp.h... no 
    checking for fastcgi/fcgiapp.h... no 
    *** extconf.rb failed *** 
    Could not create Makefile due to some reason, probably lack of necessary 
    libraries and/or headers. Check the mkmf.log file for more details. You may 
    need configuration options. 
    Provided configuration options: 
    --with-opt-dir 
    --without-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/tmp/build_ljhotq40guh7/vendor/ruby-2.0.0/bin/ruby 
    --with-fcgi-dir 
    --without-fcgi-dir 
    --with-fcgi-include 
    --without-fcgi-include=${fcgi-dir}/include 
    --with-fcgi-lib 
    --without-fcgi-lib=${fcgi-dir}/ 
    Gem files will remain installed in /tmp/build_ljhotq40guh7/vendor/bundle/ruby/2.0.0/gems/fcgi-0.8.8 for inspection. 
    Results logged to /tmp/build_ljhotq40guh7/vendor/bundle/ruby/2.0.0/gems/fcgi-0.8.8/ext/fcgi/gem_make.out 
    An error occurred while installing fcgi (0.8.8), and Bundler cannot continue. 
    Make sure that `gem install fcgi -v '0.8.8'` succeeds before bundling. 

的Gemfile:

source 'http://rubygems.org' 

gem 'rails', '3.0.11' 

#gem 'mysql2', '~> 0.2.17' 

group :development, :test do 
    gem 'sqlite3' 
end 

group :production do 
    gem 'pg' 
end 

# Use unicorn as the web server 
# gem 'unicorn' 

# Deploy with Capistrano 
# gem 'capistrano' 

# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+) 
# gem 'ruby-debug' 
# gem 'ruby-debug19', :require => 'ruby-debug' 

# Bundle the extra gems: 
# gem 'bj' 
# gem 'nokogiri' 
# gem 'sqlite3-ruby', :require => 'sqlite3' 
# gem 'aws-s3', :require => 'aws/s3' 

# Bundle gems for the local environment. Make sure to 
# put test-only gems in this group so their generators 
# and rake tasks are available in development mode: 
# group :development, :test do 
# gem 'webrat' 
# end 
gem 'fcgi' 
gem 'minitest' 
+0

你能发布你的Gemfile吗? fcgi没有经常使用。 –

+0

@JesseWolgamott当然,发布 –

+0

除了使用1.9.3,我认为你应该删除fcgi –

回答

1

它看起来像您使用的是真正的老版本的Rails的出现。

的Heroku最近更改所有新应用程序默认为使用Ruby 2.0.0 - 我建议把

ruby '1.9.3' 

在你的Gemfile源线下锁定您的应用程序的Ruby 1.9.3,你可能遇到与最新版本的Ruby和旧的Rails /宝石等问题。

+0

最后我只是改变了不使用fcgi的不同的Rails设置。无论如何感谢您的回答。 –