LoginSignup
1

More than 1 year has passed since last update.

posted at

LaravelアプリケーションをHerokuへデプロイ

問題

掌田津耶乃さんのPHPフレームワークLaravel入門[第2版]の第1章を読んで思った
「デプロイ って言ってもネット上に公開されなくね?」
読んでみると、アプリのページを訪問するためのアドレスが http://localhost/ となっていた
XAMPP(詳しくは知らない)にデプロイするみたいだけど、外部公開する手順は載ってなかった

XAMPP 外部公開 でググってみたら、「自宅サーバを構築」「外部公開はやめとけ」とかヒットしたのでXAMPPで公開は諦めた

学習の産物をネット上に見せたいだけなので、無料で簡単なHerokuにデプロイしようと思う

Railsアプリを作ってた時と同じようにHerokuにgitでpushするだけではダメのようだ(forbiddenが返された)
さてどうしよう

前提

公開するアプリは

% laravel new laravelapp

で作成されたもの。つまり、モデルを使わない静的なページを表示するだけのアプリ

Herokuのアカウントを登録してcliでログインしておくこと
SSHキー追加しておくことも忘れずに(以前にしていたらしなくていい)

% heroku login --interactive
% heroku keys:add

解決法

要はHerokuのドキュメントを見ればいいんですよね

  • GitHubやBitbucketへのリポジトリ追加やプッシュをしておく
#laravelappディレクトリに移動
% git init
% git add -A
% git commit -m "Initialize repository"
% git remote add origin [GitHubやBitbucketのリポジトリ]
% git push -u origin master
  • Procfileをディレクトリ直下に作る
% touch Procfile
% echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile

このProcfileはrootディレクトリの位置を設定するもので、これがないとデフォルトでpublic/がrootディレクトリになってしまう
Procfileを作成したので忘れずコミット

% git add -A
% git commit -m "Procfile for Heroku"
  • Heroku上にアプリケーションを作成してAPP_KEYを設定(ついでに幾つかの環境変数を設定)
% heroku create
% heroku config:set APP_KEY=$(php artisan key:generate --show)
% heroku config:set APP_ENV=heroku
% heroku config:set LANG=ja_JP.UTF-8
% heroku config:set TZ=Asia/Tokyo
  • Herokuへプッシュ
% git push heroku master

終了!

感想

ドキュメント命!

他のQiitaの記事見てたら、マイグレーションが必要な場合はもっとやることがあるらしい
アプリ完成させた時にまたHerokuへデプロイする記事書くかもです

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1