我正在关注教程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
答案 0 :(得分:0)
这个问题真的困扰了我一段时间。我仍然没有解决问题的根源,但它已被修复,并没有重新出现。
sinatra应用程序无法启动。检查完日志后,我发现SSL弹出了很多字
我写了另一个较小的程序只是为了测试Heroku而且它有同样的错误。
我按照教程here进行操作,似乎解决了错误。
答案 1 :(得分:0)
很抱歉这个混乱。最近发布的CLI版本中存在一个关于SSL证书的错误,看起来你遇到了它。我们修复了它并发布了一个不应该有这个问题的新版本。所以它不应该是你向前发展的东西。