2016-03-24

最速ホムペ(PHP)案件staging環境 with Heroku

前提や対象者

  • Heroku が何か知っていてアカウントを持っていて Heroku Toolbelt インストール済みであること
  • Apache, Nginx, Git, PHP, Composer について普通の知識を持っていること

Heroku には Dropbox 連携の機能もあるけど、後述の応用を考えると間違いなく Git 使えて まともなコミットを作る力 をつけた方がよいです。

別に Heroku じゃなくて Bluemix でもなんでもよいです。単に自分の現在の環境ですぐ実現できるものが Heroku だっただけです。

やること

  • Git の準備
  • local の開発環境の準備
  • Heroku の準備

git の準備

$ git init

local の準備

composer.json

{
  "require-dev": {
    "heroku/heroku-buildpack-php": "*"
  }
}

以下のコマンドを叩いてもよい

$ composer require --dev heroku/heroku-buildpack-php

Procfile

web: vendor/bin/heroku-php-nginx

Apache より Nginx の方がよいです。サクッと立ち上げてサクッと確認。built-in サーバみたいな感じで使えるし速い。hhvm は試してないので知りません。

確認

$ heroku local

heroku の準備

  • アプリの追加
  • (buildpackの指定)
  • heroku git:remote -a <app>

deploy

$ git push heroku <branch:>master

deploy して動かすだけなら composer.json は空でもよいし、Heroku のドキュメントはそうなっているが、どうせ Procfile が正しく動くかどうかは確認した方がよいので、require-dev に入れておくのがオススメ。

これに慣れておくとホムペレベルじゃなくてもう少し凝った仕組みに取り組む時もだいぶやりやすい。

応用編

production が FTP でしか繋がりません
lftp と rake とか使って自動化してください。-X を上手に設定しないといろいろ漏れるので気をつけるよろし。秘密情報は dotenv 使え。
そこそこ時間が掛かったり複数人で扱う案件、あるいは継続メンテする案件です
Bitbucket -> Codeship -> Heroku とか GitHub -> CircleCI -> Heroku の連携を設定しましょう。

いちいちリンク用意しないけど Heroku, Composer, Packagist など公式ドキュメントは読みましょう。

About

例によって個人のなんちゃらです