LoginSignup
6
6

More than 3 years have passed since last update.

herokuデプロイで10分であなたのアプリを世界に公開する手順【Laravel5.8】

Posted at

今回はherokuを使った、Laravelプロジェクトを世界に手っ取り早く公開する手順をご紹介します。

実は今回僕も初の公開作業をしながら同時にこのqiitaを書いているので、これが公開されているということは動作は保証されます笑

herokuとはPaaS(Platform as a Service)と呼ばれるサービスで、アプリケーションを実行するためのプラットフォームです。

もう少しわかりやすく説明すると、サーバやOS、データベースなどの「プラットフォーム」と呼ばれる部分を、インターネット越しに使えるようにしてくれるサービスの一つです。

レンタルサーバーと似ていると思うかもしれませんが、レンタルサーバーとPaaSは「環境を貸してくれる」という意味では一緒なので、ほぼ同じと考えても問題はありません

herokuとは?初心者でも5分で分かる基本や特徴をまるっと紹介

大まかな流れか以下の通りです。

herokuに登録

heroku CLIダウンロード

herokuでアプリ作成

PostgreSQLへの接続設定

herokuでDBマイグレーション

heroku openで世界に公開!

それではいきましょう!

環境

MacOS Mojave 10.14.5(windowsのみなさんごめんなさい🙇‍♂️)
Laravel5.8.x
MAMP5.3で作成したLaravelプロジェクト

herokuに登録

こちらより各自登録しておいてください。

heroku CLI

まずはherokuコマンドを入れます。

$ brew tap heroku/brew && brew install heroku

念の為バージョン確認します。

$ heroku -v
heroku/7.35.0 darwin-x64 node-v12.13.0

okですね。

ターミナルからherokuログイン

cdコマンドでlaravelプロジェクトに移動してください。

$ cd /Applications/MAMP/htdocs/kanban

kanbanは僕のプロジェクト名で、MAMPなのでhtdocs以下になっています

さあheroku CLIでログインします。

$ heroku login

以下のようなメッセージが出たらq以外を押す

heroku: Press any key to open up the browser to login or q to exit: 

すると?

スクリーンショット 2019-11-24 9.29.02.png

こんなブラウザが出てくるので、Log in押します。

Logging in... done
Logged in as xxx@xxx.xxx

ログインできた!

HerokuのHTTPサーバー用コンフィグファイル作成

$ echo "web: vendor/bin/heroku-php-apache2 public" > /Applications/MAMP/htdocs/kanban/Procfile

ここは正直自分も行う理由があやふやです(^◇^;)
ProcfileはHerokuアプリの起動時に実行するプロセスを定義するためのファイルみたいです。

herokuでアプリを作成する

$ heroku create

スクリーンショット 2019-11-24 10.09.13.png

前者がアプリのURL、後者がgitのプッシュ先になります。
これから使う大切なものなので、控えておきます。

ここからgitでherokuのリモートリポジトリにプッシュしていきます。

$ git init

これでリポジトリを作成します。
そして実はLaravelプロジェクト直下に.gitという隠しディレクトリができています。
これ超重要です。

$ git add .

git add .コマンドはリポジトリにコミットする前に行うステージングを全ファイル分やってくれます。

$ git commit -m "initial commit"

ステージングしたファイルをコミットしています。

そしたら、ここで一回.git/configを開きます。

そして、先ほどターミナルに出たgitのリポジトリアドレスも確認してください。

[remote "heroku"]
  url = https://git.heroku.com/lit-plateau-44850.git

これを追記しますが、
ここのアドレスは人によって違ってきます。

これがないとリモートリポジトリがどれかわからないので、fatal errorが出るんですよね(再送2回)

では、

$ git push heroku master

herokuのmasterリポジトリにプッシュせしめるで候。

remote: Verifying deploy... done.
To https://git.heroku.com/lit-plateau-44850.git
 * [new branch]      master -> master

このようなメッセージが出たらherokuデプロイできています。

ここからは細々した設定をしていきます。

Herokuの環境変数

$ heroku plugins:install heroku-config
$ heroku config:set DB_DATABASE=laravel
$ heroku config:push

DB名Laravelは、僕はDBローカルのMySQLでDB名がLaravelだったので、herokuでも合わせました。

Herokuにpostgresqlを作成、接続

herokuが無料で提供しているのはPostgreSQLということなので、herokuでHeroku Postgresを作成し、接続します。

$ heroku addons:create heroku-postgresql:hobby-dev
$ php -r 'preg_match("/^postgres:\/\/(.+?):(.+?)@(.+?):(.+?)\/(.*?)$/", `heroku config:get DATABASE_URL`, $matches); `heroku config:set DB_CONNECTION=pgsql DB_HOST=$matches[3] DB_PORT=$matches[4] DB_DATABASE=$matches[5] DB_USERNAME=$matches[1] DB_PASSWORD=$matches[2]`;'

herokuでマイグレーション

それでは、herokuでマイグレーションを実行します。

$ heroku run "php artisan migrate"

その後、

Migration table created successfully.

と出たら、終了です。

先ほどターミナルに出てきたアプリのURL覚えてますか?

あれが公開URLなので、緊張の入力です...

スクリーンショット 2019-11-24 10.49.50.png

公開できた😭

DBも機能してる。

ちなみにtechpitで作ったtrello風タスク管理アプリになります(https化し忘れた...)

画像投稿機能とかtwitter Authとか入れたかったなぁ...

6
6
0

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
  3. You can use dark theme
What you can do with signing up
6
6