こんにちは、seoです。 odaさんと頑張ってブログをやろうと思ったのに1年間放置。これから頑張ってポストしていく生活にシフトします。 2017年はアウトプットの年にしたいです。

heroku上で Laravel5.1を動かす

LINE BOT Awardsの賞金に目がくらんで(執筆時点では残り時間が無く、アイディアも無かったのでエントリーは断念しました。) Laravel5.1 + heroku の環境でLINE BOTを動かしてみました。 まず今回はheroku上でLaravel5.1を動かすまでを書きます。

前提

Laravel5は現時点で5.3が最新版ですが、5.3だと動かないらしいので5.1にしました。

herokuの準備

herokuのアカウント作成

まずはherokuでアカウント作成。 herokuは5年ぐらい前にRailsを動かすためにアカウントを作ってHello Worldを作った以来。 デザインがキレイになっていて驚き。

heroku toolbelt をインストール

herokuはGUIもキレイなのですが、今回はheroku toolbeltをインストールし、CUIで進めていきます。

対象ページの”OS X installer.”からパッケージをダウンロードしてインストール

heroku上でアプリケーションを作成

ここからはCUIでアプリケーションのインストール

アプリケーションのインストール

$ heroku login
  • 初めての人はSSHの公開・秘密鍵を作成
  • 初めてのログインに成功するとSSHの公開・秘密鍵のありかを聞かれます。
  • 各人鍵の利用方法をに応じて作成か既存の鍵をご利用ください.
Could not find an existing public key.
Would you like to generate one? [Yn]

EmailとPasswordを入力

Enter your Heroku credentials.
Email: [email protected]
Password (typing will be hidden):
  • ログイン 以下のメッセージが表示されログインが出来たらアプリケーションの作成です。
Logged in as [email protected]
  1. Add-onのインストール

ここまでできていればOK

※ 今回はLINE BOT を動かすので、いくつかAdd-onを追加しました。
 ただし、Add-on追加にはクレカの登録が必要なので注意してください。
 LINE BOT を動かすだけならAdd-on無しで大丈夫です。
 自分は以下の4つのAdd-onをインストールしました

  • ClearDB MySQL : MySQLを使うために使用
$ heroku addons:add cleardb
  • Fixie : LINE BOT はアクセスをWhiteList形式で制御できるのでアウトのソースIPをこれで固定できる(無料は回数に制限アリ)
$ heroku addons:add fixie
  • Heroku Scheduler : 毎朝のPushや定期処理を実行するために利用(無料だと定期処理に制限があるので注意)
$ heroku addons:add scheduler:standard

Laravel5.1の準備

herokuにlaravel5を動かすためのドキュメントがあるので、その通りに実行。

laravel5.1のインストール

  • 最新版が5.3なので、今回は5.1を指定してインストール
$ composer create-project laravel/laravel --prefer-dist hello_bot "5.1.*"

gitの登録

  • gitを使う人はgitの登録をしておく
$ cd bot
$ git init
$ git add .
$ git commit -m "new laravel bot  project"

Procfileの作成

  • Procfileの作成を実行
$ echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
$ git add .
$ git commit -m "Procfile for Heroku"

ここまででherokuとLaravelの準備は完了です。次からheroku上でLaravelを動かすところまで進めます。

Laravelのアプリケーションをheroku上で作成

アプリケーション作成

  • heroku createの実行 以下のコマンドを実行することでアプリケーションが作られます
$ heroku create

Creating app... done, ⬢ xxxxx-xxxxx-12345
https://xxxxx-xxxxx-12345.herokuapp.com/ | https://git.heroku.com/xxxxx-xxxxx-12345.git

xxxx-xxxxx-12345はランダムで作成される文字

heroku上のレポジトリ設定

  • gitのremoteレポジトリに先程作ったアプリを追加
$ heroku git:remote -a xxxxx-xxxxx-12345

keyの設定

Laravelを動かすためにはアプリケーション固有のランダムストリングが必要です。(.envに記載されているモノ) このアプリケーションキーをheroku用に発行します

  • アプリケーションキーの生成
$ php artisan key:generate

Application key [アプリケーションキーが出ます] set successfully.

アプリケーションキーをherokuに設定

$  heroku config:set APP_KEY=ここにアプリケーションキーを入力

herokuのレポジトリへPush

  • git コマンドを使ってherokuにPush
$ git push heroku master

アプリケーションを実行

$ heroku open

これで以下のような画面が出れば成功!!!

LaravelTop

次回はこのアプリケーション上にLINE BOTを作る部分を書きます。