HerokuでPHPのココが便利 #phpcondo2016 #heroku #php version 11

2016/04/10 23:55 by hiro_y hiro_y
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
# HerokuでPHPのココが便利

〜 PHPカンファレンス北海道 2016 〜
合同会社テンマド・山岡広幸

# 🐦 自己紹介
# 自己紹介

![kotori_emerge](https://mimemo.s3-ap-northeast-1.amazonaws.com/attachment/3dc8c04a-503d-40cf-8e6a-89107d337681.png)
![](https://mimemo.s3-ap-northeast-1.amazonaws.com/attachment/3dc8c04a-503d-40cf-8e6a-89107d337681.png)

- 山岡広幸 [@hiro_y](https://twitter.com/hiro_y)
- [合同会社テンマド](http://10mado.jp/)・代表社員
- PHPとかNode.jsとか書く人
- 大学文学部卒 ➡ SIer ➡ ウノウ ➡ Zynga Japan ➡ [デジタルガレージ](http://www.garage.co.jp/ja/) ➡ [トイロ](http://toyro.net/) ➡ 会社設立

# 合同会社テンマド

![10mado](https://mimemo.s3-ap-northeast-1.amazonaws.com/attachment/a29444a2-52a6-42d7-a33c-a34429dbd1da.png)

- WebサイトやWebサービスの制作
- 技術顧問・コンサルティング、経営サポート
  - 技術顧問: [株式会社アスクリード](https://ascreed.jp/)
  - 社外CTO: [株式会社イノベーター・ジャパン](http://www.innovator.jp.net/) など
- Webサービス開発・運営

# 📝 mimemo

***書く・読む・見せるをお手軽に。
mimemoはゆるく使えるテキスト置き場です。***

- https://mimemo.io
- Markdown記法
- 個人メモに使ったりテキスト共有に使ったり
  - 「あいことば」設定して秘密のメモを見せたり共同編集したり
  - もちろんブログのようにも使えます
- **powered by Heroku with Node.js (Express)**

# 🐬 iruca

***オフィスに誰がいるか一目瞭然。
irucaはログイン不要の在席管理ツールです。***

- https://iruca.co
- 無料・ログイン不要、Slack連携あり
  - リモート勤務の多い会社などにオススメ
  - 行動予定表としてご利用されているケースも
- **powered by Heroku with Node.js (Express)**

# 🍆 conasu

***複数案件かけ持ちしていても安心。
conasuはチームで使うタスク管理ツールです。***

- https://conasu.co
- チームでタスクのやり取りをするツール
  - Slackやidobata、HipChatへの通知機能あり
  - 複数プロジェクトの ✅ タスクを一覧で見られるので今日やることが一目瞭然
- **powered by Heroku with PHP (Silex)**
  - Web Dyno x1 + Worker Dyno x1

# Heroku

- https://www.heroku.com
  - 2010年にSalesforceに買収される
- PaaS (Platform as a Service)
- Node.js / Ruby / Java / PHP / Python / Go / Scala / Closure
- [The new PHP on Heroku now Generally Available | Heroku](https://blog.heroku.com/archives/2014/7/15/the_new_php_on_heroku_now_generally_available)
  - PHPの正式サポートは2014年7月から

# Herokuの特徴

- アプリケーションを作成して`git push`すればdeployできる
  - Docker 🐳 のコンテナごとdeployすることもできるようになった
    - そもそもHerokuがDynoというコンテナ単位で動いている
  - GitHubやDropboxなどと連携しての自動deployもできる
- Dashboardからサーバー台数を柔軟に変更できる
  - 調整が極めて容易

# Herokuの弱点

- レイテンシ…でしたがHeroku EnterpriseでPrivate Spacesを使うと東京リージョンが使えるように!(ただしお高い)

```console
$ heroku regions
ID         Location                 Runtime
─────────  ───────────────────────  ──────────────
eu         Europe                   Common Runtime
us         United States            Common Runtime
frankfurt  Frankfurt, Germany       Private Spaces
oregon     Oregon, United States    Private Spaces
tokyo      Tokyo, Japan             Private Spaces
virginia   Virginia, United States  Private Spaces
```

- きめ細かなサーバー設定
- 価格(AWSを単体で使うよりやはりお高い)

# HerokuでのPHPの使い方

- `composer.lock`のファイルがあればPHPアプリケーションとみなされる
  - `package.json`とかもある場合は明示的にbuildpackを指定
- `composer.json`に記述されたPHPの環境が用意される
  - 拡張(extension)が必要な場合も`composer.json`に書けば入る

# Herokuで使えるPHP拡張(7の場合)

- 最初から入っている
  - bzip2 / curl / fpm / pdo_mysql / mysqli / opcache / openssl / pgsql / pdo_pgsql / readline / sockets / zip / zlib
- composer.jsonで指定すれば入る
  - bcmath / calendar / exif / ftp / gd / gmp / gettext / imap / intl / ldap / mbstring / pcntl / shmop / soap / sqlite3 / pdo_sqlite / xmlrpc / xsl
  - apcu / blackfire / imagick / mongodb / newrelic / oauth

# HerokuによるPHPサポートの歴史(1)

- 2014年7月15日
  - [The new PHP on Heroku now Generally Available | Heroku](https://blog.heroku.com/archives/2014/7/15/the_new_php_on_heroku_now_generally_available)
  - PHPの正式サポート開始。
  - Updates to support the latest PHP and HHVM versions including PHP 5.5.14 and 5.6.0RC2;
- 2014年9月8日
  - [PHP 5.6.0 and miscellaneous PHP updates | Heroku Dev Center](https://devcenter.heroku.com/changelog-items/523)
  - PHP 5.6.0が使えるようになると同時にデフォルトのランタイムに
  - ちなみにPHP 5.6.0のリリースは8月28日

# HerokuによるPHPサポートの歴史(2)

- 2015年7月10日
  - [PHP 7 beta now available on Heroku | Heroku Dev Center](https://devcenter.heroku.com/changelog-items/679)
  - ちなみにPHP 7.0.0 Beta 1のリリースは7月10日(同日)
- 2015年12月11日
  - [PHP 7 now available on Heroku | Heroku Dev Center](https://devcenter.heroku.com/changelog-items/777)
  - ちなみにPHP 7.0.0正式版リリースは12月3日      

HerokuでPHPのココが便利

〜 PHPカンファレンス北海道 2016 〜
合同会社テンマド・山岡広幸

自己紹介

合同会社テンマド

10mado

📝 mimemo

書く・読む・見せるをお手軽に。
mimemoはゆるく使えるテキスト置き場です。

  • https://mimemo.io
  • Markdown記法
  • 個人メモに使ったりテキスト共有に使ったり
    • 「あいことば」設定して秘密のメモを見せたり共同編集したり
    • もちろんブログのようにも使えます
  • powered by Heroku with Node.js (Express)

🐬 iruca

オフィスに誰がいるか一目瞭然。
irucaはログイン不要の在席管理ツールです。

  • https://iruca.co
  • 無料・ログイン不要、Slack連携あり
    • リモート勤務の多い会社などにオススメ
    • 行動予定表としてご利用されているケースも
  • powered by Heroku with Node.js (Express)

🍆 conasu

複数案件かけ持ちしていても安心。
conasuはチームで使うタスク管理ツールです。

  • https://conasu.co
  • チームでタスクのやり取りをするツール
    • Slackやidobata、HipChatへの通知機能あり
    • 複数プロジェクトの ✅ タスクを一覧で見られるので今日やることが一目瞭然
  • powered by Heroku with PHP (Silex)
    • Web Dyno x1 + Worker Dyno x1

Heroku

Herokuの特徴

  • アプリケーションを作成してgit pushすればdeployできる
    • Docker 🐳 のコンテナごとdeployすることもできるようになった
      • そもそもHerokuがDynoというコンテナ単位で動いている
    • GitHubやDropboxなどと連携しての自動deployもできる
  • Dashboardからサーバー台数を柔軟に変更できる
    • 調整が極めて容易

Herokuの弱点

  • レイテンシ…でしたがHeroku EnterpriseでPrivate Spacesを使うと東京リージョンが使えるように!(ただしお高い)
$ heroku regions
ID         Location                 Runtime
─────────  ───────────────────────  ──────────────
eu         Europe                   Common Runtime
us         United States            Common Runtime
frankfurt  Frankfurt, Germany       Private Spaces
oregon     Oregon, United States    Private Spaces
tokyo      Tokyo, Japan             Private Spaces
virginia   Virginia, United States  Private Spaces
  • きめ細かなサーバー設定
  • 価格(AWSを単体で使うよりやはりお高い)

HerokuでのPHPの使い方

  • composer.lockのファイルがあればPHPアプリケーションとみなされる
    • package.jsonとかもある場合は明示的にbuildpackを指定
  • composer.jsonに記述されたPHPの環境が用意される
    • 拡張(extension)が必要な場合もcomposer.jsonに書けば入る

Herokuで使えるPHP拡張(7の場合)

  • 最初から入っている
    • bzip2 / curl / fpm / pdo_mysql / mysqli / opcache / openssl / pgsql / pdo_pgsql / readline / sockets / zip / zlib
  • composer.jsonで指定すれば入る
    • bcmath / calendar / exif / ftp / gd / gmp / gettext / imap / intl / ldap / mbstring / pcntl / shmop / soap / sqlite3 / pdo_sqlite / xmlrpc / xsl
    • apcu / blackfire / imagick / mongodb / newrelic / oauth

HerokuによるPHPサポートの歴史(1)

HerokuによるPHPサポートの歴史(2)