環境構築

AWS Cloud9 から Heroku へデプロイ

2018/11/01

以前、AWS Cloud9 でLaravelの構築をしました。

今回はこれを Heroku(ヘロク)という無料のWebサーバーにデプロイしてみようと思います。

 

ゴール

AWS Cloud9 で開発した Laravel5 を Heroku にデプロイ

 

前提条件

  • AWS Cloud9 で Laravel 開発環境構築済み
  • Heroku でアカウント取得済み

 

手順

1)Laravel スタートページ作成
2)Heroku コマンドを使えるようにする(heroku-cli)
3)Heroku へログイン
4)Heroku のアプリを作成
5)Procfile の作成
6)Heroku にデプロイ
7).env の APP_KEY を設定
8)動作確認

 

1)Laravelスタートページ作成

AWS Cloud9 での Laravel 構築は下記をご参考ください。

 

2)Heroku コマンドを使えるようにする(heroku-cli)

heroku-cli は Heroku をローカル(AWS Cloud9)から利用するためのソフトウェアです。

このソフトを入れると Heroku コマンドを使うことができます。

まずはこのソフトをインストールします。



# heroku-cli(tar.gz形式)のダウンロード 
$ curl -OL https://cli-assets.heroku.com/heroku-linux-x64.tar.gz

# ダウンロードしたファイルを解凍
$ tar zxf heroku-linux-x64.tar.gz && rm -f heroku-linux-x64.tar.gz

# 解凍したファイルを移動
$ sudo mv heroku /usr/local

# 環境変数にパスを追加
$ echo 'PATH=/usr/local/heroku/bin:$PATH' >> $HOME/.bash_profile

# bash の設定を再度読み込み
$ source $HOME/.bash_profile > /dev/null

Heroku CLI の導入に成功している場合は $heroku --versionコマンドでバージョン情報が表示されます。


$ heroku --version

 

3)Heroku へログイン

Herokuコマンドを使って自分のアカウントでログインします。


$ heroku login

 

4)Heroku のアプリを作成

以下のコマンドでHeroku上にアプリを作成します。

ここでは「laraweb-demo」というアプリを作成しました。


$ heroku create アプリ名

これでHeroku上にアプリを作成する領域ができました。

 

5)Procfile の作成

このまま Heroku のリモートリポジトリにプッシュしても 403 のページが表示されて見れません。

これは apache のドキュメントルートが間違っているからです。

Heroku は Procfile という名前のファイルでドキュメントルートを指定することができます。

カレントディレクトリに Procfile を作成します。


$ cd [Laravel project]
$ vi Procfile

Procfile には以下を記述します。


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

これでルートが Laravel プロジェクト直下の public になります。

 

6)Herokuにデプロイ

ローカルリポジトリ(AWS)を作成し、リモートリポジトリ(Heroku)を追加。

Heroku のダッシュボードからでもできますが、今回はCloud9のコンソールで作業をします。


# リポジトリの作成
$ git init

# herokuのリモートリポジトリを追加
$ heroku git:remote -a <アプリの名前>

 
Herokuのリモートリポジトリにプッシュ。


$ git add .
$ git commit -m "heroku deploy"
# herokuにプッシュ
$ git push heroku master

ポイント

Git の設定は事前に済ませておいてください。以下は設定メモです。


git config --global user.name [名前]
git config --global user.email [email]
git config --local core.quotepath false

Gitコマンドがあやしい方は以下をご参考ください。

 

7).envのAPP_KEYを設定

このままではアプリケーションキーが設定されていないので、Cloud9 上で以下コマンドを実行します。


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

 

8)動作確認


$ heroku open

上記のように画面が表示されればOKです。

以上です。

本庄マサノリ

仕事でLaravelを使っています。気づいたことや新しい発見など情報を発信していきます。メールはこちら

 

-環境構築