【PHP+Laravel】Herokuに掲示板アプリをデプロイする | 2流システムエンジニア DEEPのぼやき場

2流システムエンジニア DEEPのぼやき場

ブログの説明を入力します。

テーマ:

以前の記事で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へのデプロイ作業は完了です。