ComposerとPagoda Boxで今どきなDeployしたらモテ期到来で彼女が出来ました

うそです。

JAWS FESTA Kansai 2013へ行って来たんですが、関西PHP勉強会でAWSと関係のないものを習得してきましたよwという話。 大きくは2点で、@omoonさんのSaaSの話。HerokuなどのSaaS全盛期の中、PHPのSasSであるPagoda Boxなるものがあるらしい。ってのと@slywalkerさんのComposerの話。これも今流行のパッケージ管理の話でJSなどのフロントエンドパッケージ管理ツールのBOWERなんかがありますが、PHPならComposerでしょ!?ってことで。

当日のスライド一覧

用意するもの

必須

  • Git

あると便利

今回は手元のGitをdeployするだけなので、Clientからの操作で説明します。Webからの処理が意外と不便だったってのもありますが。。。

Demo

自分と言えばヤフオク、ヤフオクといえば俺、みたいなところがあるので、ヤフオクネタで作ってみました。開くとYConnect(Yahoo! Japan oauth2.0)で認証取りに行って、出品中一覧を表示します。

YCoonect Demo

読み込みにやたらと時間がかかるのだけど、YConnectにいきなり接続しに行くからかな?この辺課題だなぁ。

作業手順

1) てきとーにプロジェクトを作る

Demoそのまま使うのであればgithubにpagodaboxbranchで置いたのでそれをクローン。

➜  ~  git clone -b pagodabox https://github.com/comeonly/YConnectDemo.git

2) Pagoda BoxのSSH設定をする(初回のみ)

ここ参照 Pagoda Box Portal | Deploy and Scale PHP Apps Setting Up Git - Mac

3) Pagoda BoxでNew Appする

➜  ~  cd YConnectDemo
➜  YConnectDemo git:(pagodabox)  pagoda create

*Webの管理画面からの場合は別途gitremoteを設定する必要あり ここ参照

➜  YConnectDemo git:(pagodabox)  git remote add pagoda git@git.pagodabox.com:yconnect-demo.git

4) Deployする

➜  YConnectDemo git:(pagodabox)  pagoda deploy

Helpの記事にはpagoda deploy -b [brandch neme]的なことを書いていますが、そんなオプションないよと言われますし、pagoda deploy -hでもこんなのしかでません。

➜  ~  pagoda deploy -h
Usage: pagoda [options]
    -a, --app VAL

deployしたいbranchにいれば、そのbranchでdeployされる仕様みたいです。

勘所

「そんなBoxfileで大丈夫か?」

Boxfileの設定がさっぱりわかんなくてかなりハマった。

web1:
  name: yconnect-demo   #app名(無くても良いっぽい)
  shared_writable_dirs: #書き込み可能なディレクトリ
    - tmp
  php_extensions:       #PHPの設定
    - curl              #composerインストールするのとOauthに必要
    - zip               #composerでパッケージを開くのに必要
    - intl              #composerに必要っぽい
  after_build:          #サーバーのビルドが終わったあと実行する(bash)
    #composerのダウンロード
    - "curl -sS https://getcomposer.org/installer | php"
    #composerのインストール
    - "php composer.phar install"
    #opauthのyconnect用pluginのファイル名修正
    - "mv vendor/opauth/yahoojp/YahoojpStrategy.php vendor/opauth/yahoojp/yahoojpStrategy.php"

enjoy it !!!!