当使用Heroku create命令时出现Heroku应用程序错误

3

我正在跟随http://onemonth.com的教程创建我的rails应用程序。我被要求使用Heroku将我的应用程序上线。我按照链接我的Github帐户到Heroku的SSH密钥的步骤进行了操作。

但是,当我使用heroku create命令并复制提供的链接(在这种情况下是http://young-peak-7631.herokuapp.com/)时,我在浏览器中得到了一个“应用程序错误”。

具体错误信息如下:

“应用程序发生错误,无法提供您的页面。 请稍后重试。如果您是应用程序所有者,请检查日志获取详细信息。”

以下是Heroku错误页面的图片: enter image description here 以下是我的日志:

       2014-07-01T06:50:55.157229+00:00 app[web.1]:   Rendered layouts/_header.html.erb (0.7ms)
2014-07-01T06:50:56.211672+00:00 heroku[router]: at=info method=GET path="/about" host=omr-photoshare.herokuapp.com request_id=0b8e9a43-5ffd-4bae-aa4f-61e9f87dfdfc fwd="65.78.4.236" dyno=web.1 connect=2ms service=192ms status=304 bytes=845
2014-07-01T06:50:56.025883+00:00 app[web.1]: Started GET "/about" for 65.78.4.236 at 2014-07-01 06:50:56 +0000
2014-07-01T06:50:56.082614+00:00 app[web.1]:   Rendered pages/about.html.erb within layouts/application (0.2ms)
2014-07-01T06:50:56.174581+00:00 app[web.1]: Completed 200 OK in 95ms (Views: 7.0ms | ActiveRecord: 86.8ms)
2014-07-01T06:50:56.079586+00:00 app[web.1]: Processing by PagesController#about as HTML
2014-07-01T06:50:56.173874+00:00 app[web.1]:   Rendered layouts/_header.html.erb (90.3ms)
2014-07-01T06:50:57.026362+00:00 heroku[router]: at=info method=GET path="/users/edit" host=omr-photoshare.herokuapp.com request_id=9e7dbd9b-1e90-4cf0-b422-a39fc4dd86af fwd="65.78.4.236" dyno=web.1 connect=4ms service=26ms status=200 bytes=4509
2014-07-01T06:50:57.023820+00:00 app[web.1]:   Rendered devise/registrations/edit.html.erb within layouts/application (6.5ms)
2014-07-01T06:50:57.007189+00:00 app[web.1]: Started GET "/users/edit" for 65.78.4.236 at 2014-07-01 06:50:57 +0000
2014-07-01T06:50:57.027133+00:00 app[web.1]: Completed 200 OK in 16ms (Views: 12.8ms | ActiveRecord: 1.3ms)
2014-07-01T06:50:57.010704+00:00 app[web.1]: Processing by Devise::RegistrationsController#edit as HTML
2014-07-01T06:50:57.026562+00:00 app[web.1]:   Rendered layouts/_header.html.erb (0.5ms)
2014-07-01T06:50:58.037348+00:00 heroku[router]: at=info method=POST path="/users/sign_out" host=omr-photoshare.herokuapp.com request_id=62ed2279-f63e-4c4f-9721-7b1361348276 fwd="65.78.4.236" dyno=web.1 connect=32ms service=41ms status=302 bytes=931
2014-07-01T06:50:58.138958+00:00 heroku[router]: at=info method=GET path="/" host=omr-photoshare.herokuapp.com request_id=d36b09ab-feb9-4e13-8b07-97bda734f4cd fwd="65.78.4.236" dyno=web.1 connect=1ms service=72ms status=200 bytes=2809
2014-07-01T06:50:58.004542+00:00 app[web.1]: Started DELETE "/users/sign_out" for 65.78.4.236 at 2014-07-01 06:50:58 +0000
2014-07-01T06:50:58.034982+00:00 app[web.1]: Completed 302 Found in 25ms (ActiveRecord: 12.2ms)
2014-07-01T06:50:58.119933+00:00 app[web.1]: Processing by PagesController#home as HTML
2014-07-01T06:50:58.137550+00:00 app[web.1]:   Rendered layouts/_header.html.erb (0.5ms)
2014-07-01T06:50:58.009338+00:00 app[web.1]: Processing by Devise::SessionsController#destroy as HTML
2014-07-01T06:50:58.116047+00:00 app[web.1]: Started GET "/" for 65.78.4.236 at 2014-07-01 06:50:58 +0000
2014-07-01T06:50:58.009357+00:00 app[web.1]:   Parameters: {"authenticity_token"=>"5AnEyKY75EbCUcrc50OZjx2MOguNlKFceSaDg5DoFzw="}
2014-07-01T06:50:58.136033+00:00 app[web.1]:   Rendered pages/home.html.erb within layouts/application (14.2ms)
2014-07-01T06:50:58.034741+00:00 app[web.1]: Redirected to http://omr-photoshare.herokuapp.com/
2014-07-01T06:50:58.138057+00:00 app[web.1]: Completed 200 OK in 18ms (Views: 16.7ms | ActiveRecord: 0.0ms)
2014-07-01T06:51:00.169842+00:00 heroku[router]: at=info method=GET path="/users/sign_in" host=omr-photoshare.herokuapp.com request_id=102f1369-f2c7-4c60-95fd-fdcf94c91f3b fwd="65.78.4.236" dyno=web.1 connect=1ms service=95ms status=200 bytes=3735
2014-07-01T06:51:00.148527+00:00 app[web.1]: Started GET "/users/sign_in" for 65.78.4.236 at 2014-07-01 06:51:00 +0000
2014-07-01T06:51:00.163967+00:00 app[web.1]:   Rendered devise/shared/_links.erb (1.7ms)
2014-07-01T06:51:00.164009+00:00 app[web.1]:   Rendered devise/sessions/new.html.erb within layouts/application (6.6ms)
2014-07-01T06:51:00.165306+00:00 app[web.1]:   Rendered layouts/_header.html.erb (0.7ms)
2014-07-01T06:51:00.152352+00:00 app[web.1]: Processing by Devise::SessionsController#new as HTML
2014-07-01T06:51:00.165745+00:00 app[web.1]: Completed 200 OK in 13ms (Views: 10.2ms | ActiveRecord: 0.0ms)
2014-07-01T06:51:01.519186+00:00 heroku[router]: at=info method=POST path="/users/sign_in" host=omr-photoshare.herokuapp.com request_id=2e71a5f1-e10a-4158-af5c-6f80f8aac4a3 fwd="65.78.4.236" dyno=web.1 connect=9ms service=144ms status=302 bytes=1041
2014-07-01T06:51:01.575579+00:00 heroku[router]: at=info method=GET path="/" host=omr-photoshare.herokuapp.com request_id=304d9c4f-d607-4f37-aa75-bf07c48ace45 fwd="65.78.4.236" dyno=web.1 connect=3ms service=25ms status=200 bytes=2911
2014-07-01T06:51:01.571496+00:00 app[web.1]: Processing by PagesController#home as HTML
2014-07-01T06:51:01.518046+00:00 app[web.1]: Completed 302 Found in 133ms (ActiveRecord: 12.5ms)
2014-07-01T06:51:01.381342+00:00 app[web.1]: Started POST "/users/sign_in" for 65.78.4.236 at 2014-07-01 06:51:01 +0000
2014-07-01T06:51:01.576450+00:00 app[web.1]:   Rendered layouts/_header.html.erb (0.5ms)
2014-07-01T06:51:01.384466+00:00 app[web.1]: Processing by Devise::SessionsController#create as HTML
2014-07-01T06:51:01.384511+00:00 app[web.1]:   Parameters: {"utf8"=>"✓", "authenticity_token"=>"+8dZCduvFyzofV4G28jmxjsOXYrweHJ+cdJe3lEWPTQ=", "user"=>{"email"=>"cghazanfar10@gmail.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
2014-07-01T06:51:01.517874+00:00 app[web.1]: Redirected to http://omr-photoshare.herokuapp.com/
2014-07-01T06:51:01.568980+00:00 app[web.1]: Started GET "/" for 65.78.4.236 at 2014-07-01 06:51:01 +0000
2014-07-01T06:51:01.575119+00:00 app[web.1]:   Rendered pages/home.html.erb within layouts/application (2.4ms)
2014-07-01T06:51:01.576943+00:00 app[web.1]: Completed 200 OK in 5ms (Views: 3.1ms | ActiveRecord: 1.4ms)
2014-07-01T07:53:44.045215+00:00 heroku[web.1]: State changed from up to down
2014-07-01T07:53:44.044809+00:00 heroku[web.1]: Idling
2014-07-01T07:53:47.433692+00:00 app[web.1]: [2014-07-01 07:53:47] FATAL SignalException: SIGTERM
2014-07-01T07:53:47.433697+00:00 app[web.1]:    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in `select'
2014-07-01T07:53:47.433700+00:00 app[web.1]:    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in `block in start'
2014-07-01T07:53:47.433702+00:00 app[web.1]:    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:32:in `start'
2014-07-01T07:53:47.433704+00:00 app[web.1]:    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:160:in `start'
2014-07-01T07:53:47.433753+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/handler/webrick.rb:14:in `run'
2014-07-01T07:53:47.433755+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:264:in `start'
2014-07-01T07:53:47.433757+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/server.rb:69:in `start'
2014-07-01T07:53:47.433758+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:81:in `block in server'
2014-07-01T07:53:47.433760+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:76:in `tap'
2014-07-01T07:53:47.433761+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:76:in `server'
2014-07-01T07:53:47.433763+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
2014-07-01T07:53:47.433764+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands.rb:17:in `<top (required)>'
2014-07-01T07:53:47.433766+00:00 app[web.1]:    bin/rails:8:in `require'
2014-07-01T07:53:47.433767+00:00 app[web.1]:    bin/rails:8:in `<main>'
2014-07-01T07:53:47.433773+00:00 app[web.1]: [2014-07-01 07:53:47] INFO  going to shutdown ...
2014-07-01T07:53:47.433817+00:00 app[web.1]: [2014-07-01 07:53:47] INFO  WEBrick::HTTPServer#start done.
2014-07-01T07:53:47.433890+00:00 app[web.1]: Exiting
2014-07-01T07:53:49.611381+00:00 heroku[web.1]: Process exited with status 143
2014-07-01T07:53:46.855962+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2014-07-01T15:33:01.545336+00:00 heroku[web.1]: Unidling
2014-07-01T15:33:01.545628+00:00 heroku[web.1]: State changed from down to starting
2014-07-01T15:33:08.727524+00:00 app[web.1]: [2014-07-01 15:33:08] INFO  WEBrick 1.3.1
2014-07-01T15:33:08.727547+00:00 app[web.1]: [2014-07-01 15:33:08] INFO  ruby 2.0.0 (2014-05-08) [x86_64-linux]
2014-07-01T15:33:08.727961+00:00 app[web.1]: [2014-07-01 15:33:08] INFO  WEBrick::HTTPServer#start: pid=2 port=36532
2014-07-01T15:33:04.638475+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 36532 -e production`
2014-07-01T15:33:09.317544+00:00 heroku[web.1]: State changed from starting to up
2014-07-01T15:33:10.624767+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=omr-photoshare.herokuapp.com request_id=10c1d02a-1e17-4a48-9838-c35c2d530b52 fwd="66.249.83.39" dyno=web.1 connect=4ms service=8ms status=200 bytes=228
2014-07-01T16:38:20.572132+00:00 heroku[web.1]: State changed from up to down
2014-07-01T16:38:20.571809+00:00 heroku[web.1]: Idling
2014-07-01T16:38:25.614240+00:00 app[web.1]: [2014-07-01 16:38:25] FATAL SignalException: SIGTERM
2014-07-01T16:38:25.614249+00:00 app[web.1]:    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in `select'
2014-07-01T16:38:25.614252+00:00 app[web.1]:    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in `block in start'
2014-07-01T16:38:25.614254+00:00 app[web.1]:    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:32:in `start'
2014-07-01T16:38:25.614255+00:00 app[web.1]:    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:160:in `start'
2014-07-01T16:38:25.614257+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/handler/webrick.rb:14:in `run'
2014-07-01T16:38:25.614260+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/server.rb:69:in `start'
2014-07-01T16:38:25.614258+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:264:in `start'
2014-07-01T16:38:25.614262+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:81:in `block in server'
2014-07-01T16:38:25.614268+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands.rb:17:in `<top (required)>'
2014-07-01T16:38:25.614263+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:76:in `tap'
2014-07-01T16:38:25.614342+00:00 app[web.1]: [2014-07-01 16:38:25] INFO  going to shutdown ...
2014-07-01T16:38:25.614455+00:00 app[web.1]: => Ctrl-C to shutdown server
2014-07-01T16:38:25.614272+00:00 app[web.1]:    bin/rails:8:in `<main>'
2014-07-01T16:38:25.614452+00:00 app[web.1]: => Run `rails server -h` for more startup options
2014-07-01T16:38:25.614265+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:76:in `server'
2014-07-01T16:38:25.614266+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
2014-07-01T16:38:25.614270+00:00 app[web.1]:    bin/rails:8:in `require'
2014-07-01T16:38:25.614406+00:00 app[web.1]: [2014-07-01 16:38:25] INFO  WEBrick::HTTPServer#start done.
2014-07-01T16:38:25.614450+00:00 app[web.1]: => Rails 4.1.1 application starting in production on http://0.0.0.0:36532
2014-07-01T16:38:25.614475+00:00 app[web.1]: Exiting
2014-07-01T16:38:25.614448+00:00 app[web.1]: => Booting WEBrick
2014-07-01T16:38:25.614453+00:00 app[web.1]: => Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
2014-07-01T16:38:24.918023+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2014-07-01T16:38:28.512103+00:00 heroku[web.1]: Process exited with status 143

我查看了一些解决此问题的答案。大多数人都说 Heroku 不支持 sqlite3,我需要将我的数据库转换为 PostgreSQL
附加信息: Gemfile
    source 'https://rubygems.org'
gem 'rails', '4.1.1'

gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'bootstrap-sass'

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

group :production do
     gem 'pg'
     gem 'rails_12factor'
end

gem 'sdoc', '~> 0.4.0',          group: :doc
gem 'spring',        group: :development

config/database.yml

default: &default
  adapter: sqlite3
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3


test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3

感谢您未来的帮助...
谢谢。

尝试重新启动您的Heroku应用程序 heroku restart -a app_name。通常情况下,您不需要在Heroku上进一步配置您的PG数据库(对于OMR直到现在)。检查迁移并根据需要,因为您正在进行课程,可以删除并重新创建您的DB。 - Mini John
已经尝试过了,但仍然得到相同的错误页面。 - Cyzanfar
你能否发布一下你的 Github 仓库,从中你正在推送到 Heroku? - Mini John
是的,这里它是:https://github.com/cyzanfar/Photoshare - Cyzanfar
1
你的Gemfile没有更新! - Mini John
我该如何更新它们? - Cyzanfar
3个回答

5
最简单的解决方法是在你的Gemfile中创建生产环境组:

group :production do
  gem 'pg'
end

然后在您的终端中(在项目路径中)运行:

bundle install 

在您成功打包之后,您需要更改config/database.yml文件:
production:
  adapter: postgresql
  encoding: utf8
  database: your_database_name
  pool: 5
  username: postgres_username
  password: postgres_password
  host: 127.0.0.1

这应该可以解决您更改数据库适配器的问题。 PS. 注意 database.yml 文件中的缩进,这很重要。


4

数据库(DB)

您的问题几乎肯定与数据库有关(正如您已经提到的)。

Heroku有两种类型的错误——标准的“Rails”错误和Heroku平台错误:

Rails 错误

enter image description here

Heroku 错误

enter image description here

--

错误

这些错误对于在Heroku上运行的Rails应用程序是标准的。区别在于,Rails错误源自Rails应用程序本身,而Heroku错误则来自Heroku平台

Heroku错误基本上意味着您的应用程序因某种原因无法加载;通常是因为它无法连接到您的数据库,或者数据库没有正确的数据表。

要解决这个问题,首先需要确保您在生产中使用数据库(强烈建议使用Heroku的Postgres DB):

#config/database.yml
production:
  ....

在你完成设置并将其推送到Heroku之后,您需要确保数据库中有正确的表。为此,请在本地cmd中运行heroku run rake db:migrate


更新

确保您拥有生产数据库的方法是使用Heroku Postgres数据库,这应该是您的Heroku应用程序仪表板中的标准配置。

如果您需要将Heroku postgres数据库添加到仪表板中,只需在此处添加add-on

一旦数据库出现在您的仪表板上,请单击它,然后会出现Postgres界面。您可以在此处查看如何在Ruby中连接数据库;您应该使用应用程序仪表板中Postgress附加组件提供的详细信息。

通常,与Heroku兼容的database.yml应如下所示:

#config/database.yml
production:
  adapter: postgresql
  encoding: utf8
  database: *********
  pool: 5
  username: *********    #-> *** data from heroku's postgres user details page
  password: ******
  host: ******

我不确定应该如何修改我的config/database.yml文件。你能详细说明一下吗? - Cyzanfar
Zauzaj已经发布了您需要在文件本身中包含的内容;关于内容-您可以从Heroku获取数据库详细信息。如果您有具体要求,我可以再写一些相关内容? - Richard Peck
好的,@zauzaj 写了 production: adapter: postgresql encoding: utf8 database: your_database_name pool: 5 username: postgres_username password: postgres_password host: 127.0.0.1。但是我不知道我的数据库名称和用户名/密码。我正在跟随在线教程,我们还没有尝试过任何数据库。 - Cyzanfar
好的,我道歉 - 我的意思是结构,你在生产部分放置的是他写的。关于实际数据,最好的方法是获取一个Heroku Postgres数据库并使用它。如果您想要,我可以指导您完成该过程? - Richard Peck
我明白了,好的,请指导我完成这个过程。 - Cyzanfar
1
太棒了。我使用 git push heroku master 推送了我的 rails 应用,现在它可以工作了。我不再看到“应用程序错误”的页面了。谢谢伙计!! - Cyzanfar

2

你需要修改你的Gemfile文件,因为Heroku不支持SQLite

gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'bootstrap-sass'


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

group :production do
  gem 'pg'
  gem 'rails_12factor'
end

你可以随时参考One Month Rails Github 代码库


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接