write ahead log

ロールフォワード用

homesteadからHerokuへデプロイした時のメモ

参考サイトほぼまんまだけど, メモ.

herokuアカウントを作る

アクセスして作る.

CLIツールを入れる

homestead上で入れた.

sudo snap install --classic heroku

CLIツールでログインする

vagrant@homestead:~/code$ heroku login
heroku: Enter your login credentials
Email: hoge@gmail.com
Password: *********
Logged in as hoge@gmail.com

プロジェクトフォルダへ移動

cd ~/code

procfileを作る

apache2を使ってドキュメントルートはpublicですよという宣言らしい.

echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
git add .
git commit -m 'add Procfile for heroku'

とりあえずデプロイして確認してみる

heroku create
git push heroku master
heroku open # cli環境なのでURLが表示される

エラーが出たのでログをとる

公式によるとerrorlogに出せばいいらしい.

config/logging.phpを変えた.

     'channels' => [
         'stack' => [
             'driver' => 'stack',
-            'channels' => ['single'],
+            'channels' => ['single', 'errorlog'],
         ],

         'single' => [

APP_KEYの設定

APP_KEYがないと怒られていたので設定.

ついでにAPP_NAMEとAPP_URLも設定しておく.

heroku config:set APP_KEY=$(php artisan key:generate --show)
heroku config:set APP_NAME=見積管理システム
heroku config:set APP_URL=https://secure-spire-46506.herokuapp.com

DBを使う

クレジットカード登録さえしてあれば, Postgresが無料で使えるので.

この辺はここを参考

# 無料プランを使うように設定
$ heroku addons:create heroku-postgresql:hobby-dev

# 怖いので確認
$ heroku addons

Add-on                                      Plan       Price  State
──────────────────────────────────────────  ─────────  ─────  ───────
heroku-postgresql (postgresql-cubed-28431)  hobby-dev  free   created
 └─ as DATABASE

The table above shows add-ons and the attachments to the current app (secure-spire-46506) or other apps.


# DB情報を確認
$heroku config:get DATABASE_URL
postgres://<ユーザ名>:<パスワード>@<ホスト>:5432/<DB名>

# LaravelのDB用に環境変数を設定
# (上記の結果を当てはめる)
$ heroku config:set `
DB_CONNECTION=pgsql `
DB_HOST=<ホスト> `
DB_DATABASE=<DB名> `
DB_USERNAME=<ユーザ名> `
DB_PASSWORD=<パスワード>

# マイグレーションする
$ heroku run php artisan migrate

HTTPSを強制する

どうも挙動がおかしいと思ったらリンクがhttpになって一部のスクリプトがうまく読み込まれていない.

herokuだとhttpになって動いたりしている.

よーわからんが, 参考リンクをもとにhttps通信を強制するようにした.

Laravel5.7: Herokuにデプロイする