0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【heroku】git push heroku masterでのデプロイエラーと500エラー(Laravel、Docker環境にて)

Last updated at Posted at 2022-07-13

問題のエラーについて

Docker環境において、Laravel個人アプリをHerokuにデプロイするにあたり、git push heroku mainとすると、以下のエラーが出ました。

ssh: connect to host heroku.com port 22: Operation timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

デプロイのエラー解決について

① heroku上のリモートリポジトリを「ssh」から「https」に変更

git remote -v

を実行して、heroku上のリモートリポジトリがどうなっているのか確認したところ、

heroku  ssh://git@heroku.com/[アプリ名].git (fetch)
heroku  ssh://git@heroku.com/[アプリ名].git (push)

と「https」ではなく「ssh」がついた状態でした!!
この致命的なミスに気づかないまま、何時間も無駄にしていました。。。

そうか「ssh」から「https」に変えればいいのかと思い、意気揚々と

git remote set-url heroku https://git.heroku.com/[アプリ名].git

として、再度「git remote -v」をしましたが、未だ「ssh」のまま。。。
必死にググっていくと、下記の記事に助けられた!

の通りに、

git config --global --remove-section url.ssh://git@heroku.com/

すると、「ssh」から「https」に変更することができ、デプロイ自体は成功!

② デプロイ後の500エラーがでた!

デプロイ先のURLにアクセスすると500エラーが出ました。
ググってみると、下記の記事に辿り着き、

composer.jsonに.envを読み込む?旨の記述をすると解決するらしく、やってみました。

composer.json
//以下を最下部に追記
  "compile": [
    "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
  ]

ただ、記事にもあるように.envはgitで追跡されてないので、代わりに「.env.sample」を「.env」の内容にコピペして書き換えてから、記事にあるように「composer.json」に追記をしました。(念の為、「.env.sample」のバックアップを取りました。)

その後、ターミナル上でコミットしたのち、再度heroku pushしたところ、500エラーが解消され、サイトが見れるようになりました!

Laravel初心者ですので、分かりにくい部分があれば申し訳ありません!参考になれば幸いです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?