Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@babahito

Heroku+Laravel+MySQL+AWS S3(画像)でのデプロイ①

はじめに

あまりにデプロイに苦労したため、自分メモを主に記録を残しておきます。
初心者なので、なにかありましたらご指摘いただけましたら嬉しいです。
下準備として、Herokuのユーザー登録が完了しているgit環境済みとします。

Herokuに新規アプリケーションを作成する

まず、右上の「new」→「create new app」を選択し、アプリケーションを作成する。今回は、「samplehoge0105」とする
image.png

MySQLの用意(ClearDB)

clearDBを登録

MySQLを使うために、Herokuの「Resources」のAddoneより「clearDB MySQL」を選択し、下記の無料プランを選択し、登録する。
image.png

clearDBをLaravelで使用できるように環境設定

まず、「settings」の「Reveal config Vars」を選択する。
image.png
すると、下記の箇所に環境設定に必要な情報が入ってくるため、控えておく
image.png
上記で控えた情報を、下記のように設定していく。

 mysql://(ユーザ名):(パスワード)@(ホスト)/(DB名)?reconnect=true

DB_CONNECTION=mysql 
DB_HOST=ホスト
DB_DATABASE=DB名
DB_USERNAME=ユーザ名
DB_PASSWORD=パスワード
APP_KEY=base64:--------
APP_URL=https://(herokuアプリケーション名)samplehoge0105.herokuapp.com

※APP_KEYは取得できます。herokuでlaravelを使うために設定してください。

php artisan key:generate --show

image.png

herokuでphpを使えるようにする

「setting」→「Buildpacks」でphpを選択し、追加する。
この際、nodeを利用している場合はここで追加しておく。
image.png

package.jsonおよび、AppServiceProvider.phpに追加

  1. laravelのプロジェクトの「package.json」ファイルに下記項目を追加する
"scripts":{
"heroku-postbuild": "npm run prod",`(←この行のみ追加)
  1. laravelのプロジェクトの「app/Providers/AppServiceProvider.php」に下記項目に変更
use Illuminate\Support\Facades\Schema;
public function boot()
{
    Schema::defaultStringLength(191);
}

Procfileを作成する

laravelプロジェクトの直下に、procfile(拡張子なし)を作成し、下記内容を記入します。

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

※herokuを動かすために、必要なファイルになります。必ず用意してください。

httpsにするために

laravelでは、デフォルト設定では、httpでの動作とされるため、laravelプロジェクト内の「App\Http\Middlewar\TrustProxies」の設定を変える必要があります。

class TrustProxies extends Middleware
{
protected $proxies = '*';(←ここの変更)

herokuへデプロイしていく

ここまで下準備ができたら、デプロイしていきます。
下記コマンドを順番にうっていきます。

$heroku login (herokuへログイン、別ウィンドウでherokuが立ち上がるので、ログインしてください)
$git init (git管理していたら不要です)
$git add . 
$git commit -m "コミットメッセージ"
$heroku git:remote -a samplehoge0105(herokuのアプリケーション名)
$git push heroku master (これでデプロイSTART)

データベースのテーブルを作成する

ここで、やっとmigrationします(ここまではやらない方が無難です)

$heroku run php artisan migrate

デプロイ完成

https://(herokuアプリ名)samplehoge0105.herokuapp.comで確認する

この後、画像の投稿に関して続きます。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
babahito
現在WEBデザイナーやってます

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?