6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

第16回関西PHP勉強会

Posted at

Twitter: @kphpug / #phpkansai
FB: Kansai PHP Users Group

大事な案内

PHPカンファレンス関西2014 2014/06/28(土) 大阪産業創造館

blog(Kobito)を書くまでが勉強会

自己紹介

氏名、TwitterIDなど、PHP歴とか。

Herokuで作るスケーラブルなPHPアプリケーション

@shin1x1 さんの話

Herokuとはなんぞや

  • Heroku社(なのかな?)が運営するPaaS
  • 2007 年 Service In.
  • 300 万以上のアプリ動いてる
  • 初めRuby が初め、Java、Nodeが動き…2014/04にPHP正式対応

Herokuの嬉しい所

  • Git push で Deploy
  • middlewareのインストールなどが不要
  • 無料枠でわりと試せる。

対応

  • PHP 5.5.12/ 5.5.13
  • hhvm 2.1.0
  • mbstring, memcached 等有り
  • using composer.

Add-On

  • PostgreSQL/MySQL/KVS
  • Mail
  • Log
  • 監視
  • Queue
  • とかとか…

PHP アプリのデプロイ

$ ls 
index.php
$ cat index.php
<?php phpinfo();
$ git init

Deploy

サインアップ

どこも同じ

heroku toolbelt インストール

  • 黒い画面で、Herokuを操作するためのコマンドラインを提供
  • ブラウザであるけど、こちらも便利なのでおすすめ

アプリケーション作成

Heroku上でアプリケーションを作成する。

〜〜 でも 〜〜

index.php があれば、よしなにそれが動くが、composer.json がないとワーニングが出る

!! Git は使わないといけないのが注意 !!

スケーラブルな構成を作る

  • 画像アップロードサイト
  • ログイン認証
  • Laravel 4.2

のサンプルアプリケーション。Githubにアップロード済み

Simple Architecture

サーバとか必要な構成: Apache/PHP, Log, DB, Session, File
これだと、

  • 1台のサーバにあるので、サーバを増やすことができない(None Scalable)
  • Apache+PHP / DB / Session / File →それぞれバラバラにする
  • Apache+PHP = Dyno (Heroku用語)
  • 他の DB / Session / File は Add-On を使う(外部サービスの連携)

スケーラブルな構成

  • Dynoはスケートレスにする
  • アプリケーションデータは Add-Ons におく

中のこと

  • DB の環境設定は環境変数で受け取るので、parse_url 関数で展開させて、それに書かれているサーバに接続する
  • 他の Add-Ons もこのようなやり方で使う
  • というのが Qiita に記事が(ry
  • ログイン認証はRedisでこれも記事がQiitaに(ry
  • AWS S3 の接続キーとかは、heroku config:set で環境変数にセットする
  • ログ stdout/stderr に書き出して、PaperTailとかの Add-ons にする

〜〜デモは飛ばします〜〜

大事なこと(ハマった所)

  • ファイルに保存したデータは消える
    1. Deploy や、環境変数の設定変更等の走査
    2. 一日一回の再起動
    3. 無料枠の時は、アクセスなけりゃ寝てる
  1. アクセスするたびに、タイムスタンプをファイルに保存するアプリをDeploy
  2. push したらタイムスタンプの内容が書き換わる

データは消える(ただし、ソースコードは消えない) = データは外部に逃す = 自然とスケーラブルな構成にせざるおえない

まとめ

  1. Heroku は無料枠で使える
  2. Add-ons の活用が肝
  3. スケーラブルアプリケーション矯正ギブス

参考:

  • 公式ドキュメント(英語なのでGoogle翻訳などで。)
  • 電書でHerokuの本がある(ただし、まだベータ版なので、章ごと白紙とかある)

Yii2 ベータなのに実務に使ってる様子

@tanakahisateruさん

YiiFramework (ィーフレームワーク)

  • 1.1 ( PHP 5.1 >= ) CentOS5.0 のみ…
  • 2.0 ( PHP 5.4 >= )

結構流行ってる

1.1 → 2.0 でPHPのいいところが取り込まれた

beta で Q/A

  • 使えるの?→納品近いならやめとけ
  • リリース直近では?→メンテし続けれるならいいんじゃない

使ってみた

去年末からαを使っていた。

いいところは?

やってみます。(デモ)

http://goo.gl/729eMqhttps://github.com/tanakahisateru/yii2-sample

2,3時間ぐらいの作業ろぐ

composer create-project でYii2の初期状態ができる

  • お問い合わせフォームがある

  • static ページもできている

  • PHPinfo もある
    という状態

  • Gii のフラットジェネレータを使って webブラウザ上でモデルを作成すると、ActiveRecodeを作って、PHPコードも吐いてくれる

  • Model の中にバリデーターがある

  • IDE ( PHPStorm ) にフレンドリー

  • DataProviderにPagingやFilterなどを取り回すので、それが良しなにやって、管理画面がサクサクつくれる

  • これらが、管理側/表側、両方一度に作成できる

Composer のお話

みかかね ( @mkkn_info ) さん.

Composer

依存管理ツール。

  • 無い時
    • 同じコードが別々の箇所にあって、えらいことになる
    • バージョン管理したくねぇ
    • 構築とかとか

これらが解決する

composer.json

ライブラリ依存が書かれているので、これがあればcomposerでインストールできる

  1. composer.phar があればOK。
  2. composer.json
    1. composer.phar init で作成される
    2. 他のプロジェクトからコピペ
  3. ライブラリの調べ方: Packagist
  4. composer.phar require でcomposer.json に追記される
  5. composer.phar install でインストール
  6. vendors/autoload.php を reuqire すれば、使えるようになる
  7. composer.phar update でアップデートされる
  8. composer.lock にバージョン情報はいってるので、git add しとくといいよ

require dev で入れた場合、requireエントリとは別に入るので、開発環境と本番を切り分けることができる

packagist にない

phar / github とかとかでも composer 経由でインストール可

repositories エントリーに書けばいい。

repositories: {
	type: vcs
	url: https://github.com/...
}

とか

Version 情報

tag がそのままバージョン情報になる

dev-master: Master ブランチ

基本的には tag のほうが良い。ブランチは開発中のが含まれる。

---- 気力尽きたのでたとたどでメモ -----

Satis

Composer のリポジトリビルダー

PHPStorm

@msng さん

色々さわったらこれが一番いい

個人ライセンス $99

KeyRemap4MacBook : Mac のキーバインドをかなりいじる。 Space -> \ にしたり。

Qiita に https://twitter.com/msng/status/479601166251094016

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?