Herokuを利用してWebアプリケーションを公開する方法

スポンサーリンク

Laravelを利用した簡単なWebアプリケーションを実装して、Herokuにデプロイしてみようと思います。

前提として、Herokuのアカウント登録を済ましておいてください

学べること

  • Herokuの使い方(設定ファイルの書き換えやデプロイ方法など)
  • Laravelの簡単な実装方法

環境情報

  • Webアプリの実行環境は、FreeプランのDyno
  • Webアプリの言語は、PHP7.2
  • Webアプリのフレームワークは、Laravel6系
  • DBは、PostgreSQL

そもそもHerokuって何?

HerokuはWebアプリケーションを実行する上で必要な土台を提供してくれるサービスでございます。

このようなサービスをPaaSと言います。

従来はWebアプリを世の中に公開するために、CentOSをインストールして、Apacheをインストールして、DBをインストールして、それぞれの設定を行って・・・と一苦労でした。

しかし、Herokuのようなサービスが登場することによって、上記の工程がなくなり、非常に効率よくアプリケーションの公開ができるようになっています。

Herokuを利用するメリットは、継続デリバリーとかリソースの拡張性とか…etc

それ以外にもありますが、ここでは触れません。

Herokuを利用する上で気を付けなければならない点があります。

それは1日1回Dynoの再起動が行われる点です。

再起動が行われると、Gitにpushされていないコンテンツは全て消えてしまいます。

例えば、ユーザが画像をアップロードするサービスなどは、それらの画像が全て消えてしまうので気をつけてください。

回避策としては、FirebaseやS3といったストレージサーバで管理することです。

Herokuの紹介はここまでとします。

Laravelプロジェクト作成

まずはじめに、簡単なWebアプリケーションを作成します。

以下のコマンドを実行してLaravelプロジェクトを作成ください。

composer create-project --prefer-dist laravel/laravel sample-project "6.*"

具体的には以下の記事を参考にしてください。

次に作成したプロジェクトに移動します。

cd sample-project/

webアプリケーションの作成

Hello Worldと表示するアプリケーションを作成します。

これも歴としたWebアプリだと信じます!!

正直これだけだとLaravelを使う意味がないですが、Webアプリの今後の拡張性を持たせるために使っています。

resouces/views/welcom.blade.phpを書き換えてください。

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>sample</title>
    </head>
    <body>
        Hellow World
    </body>
</html>

続いてgitにコミットします。

まずは、ローカルリポジトリを作成してください。

git init

続いて、ステージしてください。

git add .

そして、コミットしてください。

git commit -m "hellow world"

Webアプリケーションの準備は以上で終了です。

引き続き、Herokuプロフェクトの作成に移ります。

Herokuプロジェクトの作成とデプロイ

まずはHerokuにログインしてください。

ec2-user:~/environment/sample (master) $ heroku login -i
heroku: Enter your login credentials
Email: ********@gmail.com
Password: *************
Logged in as ********@gmail.com
ec2-user:~/environment/sample (master) $ 

ログインに成功したら、プロジェクトを作成します。

heroku create

作成に成功するとアクセスURLとGitのリモートリポジトリが生成されます。

Creating app... done, ⬢ quiet-beach-52219
{アクセスURL} | {Gitリモートリポジトリ}

APP_KEYの設定を行います。これはCSRLトークンとかを生成する際に使用されます。

セキュリティ対策とかに使用されます。

heroku config:set APP_KEY=$(php artisan --no-ansi key:generate --show)

そして、Procfileというファイルを作成する必要があるみたいです。

以下の内容でドキュメントルート直下に作成しましょう。

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

詳しくは以下の公式サイトを参照していただきたいです。

Deploying PHP Apps on Heroku | Heroku Dev Center
Creating, configuring, deploying and scaling PHP applications on Heroku.

作成が終わったら、gitにステージとコミットをおこなってください。

そして、最後にHerokuにデプロイします。

git push heroku master

動作確認

生成されたURLにアクセスしてください。

忘れた方は以下のコマンドを叩いてください。

heroku apps

サイトの識別子が表示されるので、以下の形式でアクセスしてください。

https://{サイト識別子}.herokuapp.com

画面にHellow Worldと表示されていれば成功です!

お疲れ様でした!

Heroku
スポンサーリンク
エンジニアの日記

コメント