在heroku上启动应用程序时出错

时间:2012-03-03 18:40:24

标签: ruby git ssl heroku sinatra

我正在关注教程here: 我已经完成了所有步骤。我的应用程序有一个config.ru,一个gemfile和一个文件,只是说去!这只是为了测试在heroku上运行的应用程序,看看它是如何处理的。可悲的是,我得到了一个非常奇怪的错误。

根据教程

,下面是我的git推送
git push heroku master
Counting objects: 9, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 596 bytes, done.
Total 5 (delta 4), reused 0 (delta 0)

-----> Heroku receiving push
-----> Ruby/Rack app detected
-----> Installing dependencies using Bundler version 1.1.rc.7
       Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
       Using i18n (0.6.0)
       Using multi_json (1.1.0)
       Using activesupport (3.2.2)
       Using builder (3.0.0)
       Using activemodel (3.2.2)
       Using bson (1.6.0)
       Using mongo (1.6.0)
       Using plucky (0.4.4)
       Using mongo_mapper (0.11.0)
       Using rack (1.4.1)
       Using rack-protection (1.2.0)
       Using tilt (1.3.3)
       Using sinatra (1.3.2)
       Using bundler (1.1.rc.7)
       Your bundle is complete! It was installed into ./vendor/bundle
       Cleaning up the bundler cache.
-----> Discovering process types
       Procfile declares types     -> (none)
       Default types for Ruby/Rack -> console, rake, web
-----> Compiled slug size is 3.7MB
-----> Launching... done, v5
       http://myapp.herokuapp.com deployed to Heroku

To git@heroku.com:myapp.git
   d799d9c..93d7d15  master -> master

看起来很简单。但是heroku ps给出了

Process  State           Command                               
-------  --------------  ------------------------------------  
web.1    crashed for 4s  bundle exec rackup config.ru -p $P.. 

当然,我检查了原木,但它们也可能是阿拉伯语。

/

usr/lib/ruby/1.9.1/net/http.rb:678:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
    from /usr/lib/ruby/1.9.1/net/http.rb:678:in `block in connect'
    from /usr/lib/ruby/1.9.1/timeout.rb:44:in `timeout'
    from /usr/lib/ruby/1.9.1/timeout.rb:89:in `timeout'
    from /usr/lib/ruby/1.9.1/net/http.rb:678:in `connect'
    from /usr/lib/ruby/1.9.1/net/http.rb:637:in `do_start'
    from /usr/lib/ruby/1.9.1/net/http.rb:626:in `start'
    from /usr/local/heroku/lib/heroku/client.rb:409:in `read_logs'
    from /usr/local/heroku/lib/heroku/command/logs.rb:31:in `index'
    from /usr/local/heroku/lib/heroku/command.rb:135:in `run'
    from /usr/local/heroku/lib/heroku/cli.rb:9:in `start'
    from /usr/bin/heroku:30:in `<main>'

我确实认为heroku在ruby 1.9.2上运行应用程序,但这并不重要。看起来我错过了某种ssl证书或变量。我绝对没有在我的'go.rb'脚本中使用任何基于SSL的函数,但它似乎仍然需要一些东西。

有人能指出我在正确的方向吗?


config.ru

require './go'
run Sinatra::Application

2 个答案:

答案 0 :(得分:0)

这个问题真的困扰了我一段时间。我仍然没有解决问题的根源,但它已被修复,并没有重新出现。

sinatra应用程序无法启动。检查完日志后,我发现SSL弹出了很多字

我写了另一个较小的程序只是为了测试Heroku而且它有同样的错误。

我按照教程here进行操作,似乎解决了错误。

答案 1 :(得分:0)

很抱歉这个混乱。最近发布的CLI版本中存在一个关于SSL证书的错误,看起来你遇到了它。我们修复了它并发布了一个不应该有这个问题的新版本。所以它不应该是你向前发展的东西。