以前の記事でLaravel6系にて掲示板を作成しました。
このままだと、ローカル環境のブラウザでアクセスすることはできますが、LANの外からはアクセスできません。
なので、適当なサービスを使用して、出先からでも見れるようにしましょう。
今回はHerokuを使用します。
なお、デプロイする掲示版アプリの開発環境は下記の通り。
Windows10 Pro
XAMPP 7.4.11
PHP 7.4.11
Laravel Framework 6.20.4
Git 2.29.2.2
いつものように参考サイト。
今回は下記サイトです。
事前準備
下記の作業を完了していること。
・Herokuでアカウントの登録が完了していること
・HerokuのCLIのインストールが完了していること
・Herokuへクレジットカードの登録が完了していること
※ Vプリカを登録する場合は、下記の記事を参照下さい。
Heroku上に新規アプリを作成する
下記のコマンドを実行します。
cd 【アプリのあるフォルダ】
heroku login -i
※ メールアドレスとパスワードの入力が求められるので、入力する
heroku create laravel-test-keijiban --buildpack heroku/php
「laravel-test-keijiban」はアプリ名ですが、他の人と同じ名前をつけることができないので注意です。私は最初、「laravel-bbs」で登録しようとして、NGでした。
続いて、GitコマンドでHeroku上に掲示板アプリをアップする。
git init
heroku git:remote -a 【herokuのアプリ名】
git add .
git commit -m "make it better"
git push heroku master
ターミナルからherokuアプリを開く
heroku open
サイトが表示される。 (ただし、エラーです)
Heroku Procfileを作成する
Heroku Procfileを作成する
ProcfileはHerokuアプリの起動時に実行するプロセスを定義するためのファイルです。
アプリフォルダ直下にProcfileを作成して、下記の通りに記載します。
web: vendor/bin/heroku-php-apache2 public/
varchar型の文字数を191に制限する
これを設定していないとherokuでmysqlを使ってマイグレーションするときにエラーが発生して解決させるために非常に労力がかかるらしいです。
\app\Providers\AppServiceProvider.phpに以下を追加する。
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
herokuに変更をプッシュする
そのあと、もう一度herokuに変更点をプッシュする
git add -A .
git commit -m "Add Procfile + varchar = 191"
git push heroku master
DBを設定する
DBはMySQLを利用するので、「ClearDB MySQL」を追加します。
ブラウザでHerokuにログインすると、上記のアプリ名がダッシュボード画面に表示されています。
アプリ名をクリックして、OverViewタブのConfigure Add-onsをクリックして下さい。
検索欄でMySQLと入力すると、候補にClearDB MySQLが表示されるので、選択する。
プランが「Ignite - Free」になっているのかどうかを確認してください。
登録が完了すると、下記のようにClearDB MySQLが表示される。
DBの接続情報を設定する
下記のコマンドを入力すると、DBの接続情報が表示されます。
heroku config:get CLEARDB_DATABASE_URL
CLEARDB_DATABASE_URLで表される接続 URL は以下の形式になっています。
mysql://aaaaa:bbbbb@ccccc/ddddd?reconnect=true
mysql://[ユーザー名]:[パスワード]@[ホスト名]/[データベース名]?reconnect=true
それぞれ config:set コマンドで設定します。DB_CONNECTION は mysql に設定します。
heroku config:set DB_CONNECTION=mysql
heroku config:set DB_HOST=ccccc
heroku config:set DB_DATABASE=ddddd
heroku config:set DB_USERNAME=aaaaa
heroku config:set DB_PASSWORD=bbbbb
その他の設定を行う
それぞれ config:set コマンドで設定します。
heroku run php artisan key:generate --show
※ 上記のコマンドの結果をコピー
heroku config:set APP_KEY=【上記のコマンドの結果】
heroku config:set APP_ENV=heroku
heroku config:set LANG=ja_JP.UTF-8
heroku config:set TZ=Asia/Tokyo
念のため、キャッシュをクリアする。
heroku run php artisan config:clear
heroku run php artisan cache:clear
マイグレーションを実行する
下記のコマンドを実行する。
heroku run php artisan migrate
サイトを確認する
最後に下記コマンドでサイトを確認する。
heroku open
これにて、Herokuへのデプロイ作業は完了です。