2021/12/10
以前、AWS Cloud9 で開発した Laravel のスタートページをデプロイしました。
しかし、まだデータベースの設定をしていないので、make:auth
ができなかったりします。
今回は Heroku にデータベース(MySQL)を構築して、認証画面(make:auth)をデプロイしてみます。
ゴール地点
ヘロクでデータベースの作成&マイグレーションを実行して、認証画面の作成。
デモサイト ※表示されるまで少し時間がかかります。
【テスト用アカウント】
e-mail : test@test.com
password : testtest
前提条件
AWS Cloud9 で Laravel の認証画面が作成されており、Heroku にデプロイ済み。
よくわからない方は以下のページをご参考ください。
手順
1)クレジットカードの登録
2)addons:addコマンドの実行
3)環境変数の設定
4)データベースの作成
5)動作確認
1)クレジットカードの登録
Heroku の DB はデフォルトでは Postgres になっています。
「Cleardb」というアドオンを使って MySQLに変更する必要が出てくるのですが、実はそのままだとアドオンが使えなかったりします。
MySQL (アドオン)を使うためにはクレジットカードの登録が必要になります。
(※登録しても、無料枠で使えば課金されることはありません。)
1.Heroku のダッシュボードの一番右側のアカウントの項目から「Account settings」をクリック。
2.「Billing」タブをクリックし、「Add Credit Card」クリック。
3.ダイアログが表示されるので、カード情報を入力
英語で住所を書く場合、日本での書き方と逆になり、番地が一番最初に来ます。
よくわからない方は以下をご参考ください。
2)addons:addコマンドの実行
クレジットカード情報を登録したら、以下のコマンドを実行します。
# ClearDBアドオンをいれる
$ heroku addons:add cleardb
実行後、configコマンドで Heroku
の環境変数である CLEARDB_DATABASE_URL
が確認できます。
$ heroku config | grep CLEARDB_DATABASE_URL
パイプを使って「CLEARDB_DATABASE_URL」の箇所だけ表示してます。
設定を全部確認したい場合は heroku config
のみでOK。
上記のコマンドを打つと自分のデータベースのURLの情報がでてきます。
CLEARDB_DATABASE_URL: mysql://[DB_USERNAME]:[DB_PASSWORD]@[DB_HOST]/[DB_DATABASE]?reconnect=true
表示された内容を確認して、このあとにする環境変数の設定で使います。
3)環境変数の設定
登録方法
登録は config:set
コマンドで行います。
$ heroku config:set [環境変数]=[登録する内容]
CLEARDB_DATABASE_URL
の内容を確認してDBの環境変数の設定をします。
$ heroku config:set DB_DATABASE=[データベース名]
$ heroku config:set DB_HOST=[ホスト名]
$ heroku config:set DB_USERNAME=[ユーザー名]
$ heroku config:set DB_PASSWORD=[パスワード]
その他の設定。
$ heroku config:set APP_ENV=heroku
$ heroku config:set LANG=ja_JP.UTF-8
$ heroku config:set TZ=Asia/Tokyo
4)データベースの作成
ヘロク上でマイグレーションを実行します。
$ heroku run php artisan migrate
migration は heroku run php artisan migrate
ではなく、heroku run bash
コマンド後にphp artisan migrate
を入力して実行することも可能。
なお、exit
コマンドで抜けることができます。
これで、「make:auth」のデータベースはできました。
5)動作確認
AWS Cloud9 上で作成した認証画面(make:auth)のファイルをヘロクのリモートリポジトリへプッシュ。
openコマンド
の実行。
$ heroku open
上記のように表示されればOKです。
以上です。
Udemyを使ったLaravel学習方法
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。