RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

Laravel を使ったアプリを Heroku へデプロイする Tips

f:id:Y-Kanoh:20181120141531p:plain

最近、自宅で Laravel を使ったアプリを作成しています。 せっかく作ったアプリなので、公開しようとしたのですが、あくまで趣味の範囲であり、有料の環境を使おうとは思えず、Heroku へデプロイすることにしました。 今回は、Heroku でLaravel アプリをデプロイするための手順を簡単に説明します。

前準備

Heroku のアカウント作成と、Heroku CLI のインストールは事前に済ませてください。

Profile の作成

Heroku アプリの設定値を書き込む Profile を Laravel プロジェクトの直下に作成し、以下の内容を書き込みます。 これにより、Webサーバに Apache を使用し、Laravel の public ディレクトリをドキュメントルートにすることができます。

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

ファイルを作成次第、master ブランチに Profile を commit します。

.envファイルについて

Laravel の .env ファイルでは、ローカルの環境変数を設定できます。 Heroku へのデプロイは、Git を用いてリポジトリを Heroku へ push することで行うため、 git の管理外である .env ファイルを Heroku へ設置できません。 そのため、config ディレクトリ内の環境変数を Heroku 環境で使用したい値に変更しておきます。

Heroku アプリ作成

Laravelアプリのディレクトリに移動し、heroku loginコマンドでメールアドレスとパスワードを入力し、Heroku にログインします。 その後、Heroku へ PHP アプリを作成するために、heroku createコマンドを実行します。

> heroku login
heroku: Enter your login credentials
Email [xxxx.xx.xx@xxx.xx]:
Password: *******
Logged in as xxxx.xx.xx@xxx.xx

> heroku create my-app

実行できたら、heroku appsコマンドを実行することで、Heroku にアプリケーションが増えていることがわかります。

Heroku へ push する

Heroku へアプリが追加出来たら、作成したプロジェクトを Heroku へデプロイします。 デプロイと言えど、やることは Heroku へ master ブランチを push するだけです。

> git push heroku master

少し時間がかかりますが、push ができればデプロイ完了です。

メールの送信設定

作成していたアプリでは、メールを送信する必要がありました。しかし、Heroku から直接メールを送信することはできないので、他の方法を考える必要があります。 今回は、Gmail に対して SMTP 接続を行い、メールを Gmail を用いて送信するようにしました。 手順としては、Google アカウントにて、GmailSMTP 接続を許可したうえで、config/mail.php環境変数を以下のように変更します。

'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 465),
'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'my.gmail@gmail.com'),
        'name' => env('MAIL_FROM_NAME', 'Fromの名前'),
    ],
'encryption' => env('MAIL_ENCRYPTION', 'ssl'),
'username' => env('MAIL_USERNAME', 'my.gmail@gmail.com'),
'password' => env('MAIL_PASSWORD', 'xxxxxxxxxxxxxxxx'), // Gmail設定時のパスワード文字列

これにより、Laravel アプリからメールを送信することができるようになります。

その他

その他、Heroku ではカスタム次第でいろいろな機能が使えます。 ちょっとしたアプリ作成や、実装の練習成果を公開する場合は、非常に便利ですね。

参考サイト

qiita.com

Copyright © RAKUS Co., Ltd. All rights reserved.