0
1

More than 1 year has passed since last update.

herokuにLaravelアプリケーションをデプロイする

Last updated at Posted at 2022-07-23

はじめに

Laravelのアプリケーションを作成したのでherokuにデプロイしようとしてつまずいたので、書いていけたらとおもっています。
今回自分はLaravelでのアプリケーションをデプロイしますが、他の言語でもやることはあまり変わらないと思いますので少しでも参考になると幸いです。

herokuコマンドやherokuへの登録は終わってるものとします。
まだの方はこちらの記事を参考に実施してください
https://qiita.com/tetsu-sh/items/f6fcbb6b85df04e5cf3f

使用する環境

  • MacOS(M1)
  • PHP 8.0.19
  • Laravel 9.19.0
  • MySQL 8.0.29
  • Docker
  • LaravelSail

早速やっていくよ!!

herokuアプリを作成

$ heroku create

作成したアプリケーションに移動して

#アプリケーション名の確認
$ heorku apps

# 確認した名前をアプリ名としてherokuと連携
$ heroku git:remote -a {アプリ名}

# ちゃんと連携できてるかの確認(herokuが追加されてたらOK)
$ git remote -v

アプリケーション直下にProcfileを追加する

$ touch Procfile

webサーバーにapachを使う場合

.Procfile
web: vendor/bin/heroku-php-apache2 public/

デプロイ

$ git add .
$ git commit -m "heroku-deploy"
$ git push origin master
$ git push heroku master

heroku configの設定
APP_KEYを確認してherokuにセットする

.env
APP_KEY=base64:{APP_KEY}
$ heroku config:set APP_ENV=production
$ heroku config:set APP_DEBUG=false
$ heroku config:set APP_URL=https://{アプリ名}.herokuapp.com/
$ heroku config:set APP_KEY=base64:{APP_KEY}
# うまく設定できたのかを確認
$ heroku config

デプロイしたのを確認

$ heroku open

MYSQLの設定

クレジットカードの設定ができてないとエラーが出るのでクレジットの設定をする
ここで設定する:https://heroku.com/verify
cleardbはMySQL5.7以降だとマイグレーションの時にエラーになってしまうのでJawsDBを採用する(無料)

$ heroku addons:create jawsdb:kitefin
こちらでしっかりDBに追加されていることを確認
$ heroku config
JAWSDB_URL: mysql://{文字列}

herokuにDBでの設定をする

ここがなかなか難しくて苦戦しました
自分はてっきり.envファイルに書いてある環境変数かと思ってたんですけど、違いました
間違ってるといつまで経ってもマイグレーション出来ないので注意してください。
正解

JAWSDB_URL: mysql:/<username>:<password>@<host>/<databse>
$ heroku config:set DB_CONNECTION=mysql
$ heroku config:set DB_HOST=<host>
$ heroku config:set DB_PORT=3306
$ heroku config:set DB_DATABASE=<databse>
$ heroku config:set DB_USERNAME=<username>
$ heroku config:set DB_PASSWORD=<password>

# ちゃんと設定できたかの確認
$ heroku config

heroku環境でマイグレーション

$ heroku run php artisan migrate 
$ heroku open

で確認してエラーが出てなかったら完了!

0
1
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
1