🔮 Heroku(各フレームワーク)
作成日: 2021/10/18
0

【laravel編】

■ Procfile作成
ProcfileはHerokuの環境設定ファイル(ファイル形式はなし)。アプリフォルダの直下に作成

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

※めっちゃハマったポイント

  • procfileではなくProcfile
  • vscodeでファイルを作成するとhファイル名の先頭にherokuマークが必ず付く!!
    つかない場合かな文字の可能性が大・・・丸一日ハマった

DBの文字数の設定
app\Providers\AppServiceProvider.phpのboot()に設定します。

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

アプリをhttpsに対応させる
app\Providers\AppServiceProvider.phpのboot()に設定

public function boot()
{
    if (\App::environment('production')) {
      \URL::forceScheme('https');
  }
}    

Herokuへのログイン

$ heroku login

Herokuアプリの作成、デプロイ

$ heroku create myapp –buildpack heroku/php
$ heroku create myapp –buildpack heroku/nodejs //必要か不明

デプロイはGitを利用したHerokuアプリへのプッシュによって行います。
なのでまずHerokuアプリをリモートとして登録します。myappのところは先ほど作成したHerokuアプリを指定します。

$ heroku git:remote -a myapp

このHerokuリモートにプッシュしてデプロイします。変更点のコミットを忘れずにしましょう。

$ git add . 
$ git commit -m 'Add Procfile, varcher length, force https'
$ git push heroku master

DBとしてMySQLを利用
herokuにMysqlを作成する

$ heroku addons:add cleardb

DBの設定
まずは自分のClearDBのURLを確認します。

$ heroku config:get CLEARDB_DATABASE_URL

mysql://[ユーザー名]:[パスワード]@[ホスト名]/[データベース名]?reconnect=true
各キー、値を登録します

$ heroku config:set DB_DATABASE=[データベース名]
$ heroku config:set DB_HOST=[ホスト名]
$ heroku config:set DB_USERNAME=[ユーザー名]
$ heroku config:set DB_PASSWORD=[パスワード]

その他の環境設定

$ heroku config:set APP_KEY=$(php artisan key:generate --show)
$ heroku config:set APP NAME=myapp
$ heroku config:set APP_ENV=heroku

このほかにもメールやapi等の各種環境変数もここで設定します。

マイグレーションの実行

$ heroku run php artisan migrate
$ heroku open

マイグレーションを実行し、成功したらサイトにアクセスしてみましょう。

参考URL
https://qiita.com/okita_kamegoro/items/3278d62dd0174960b7f7

https://qiita.com/rope19181/items/07d556715a3a4f6191bd


Laravel勉強中