うそです。
JAWS FESTA Kansai 2013へ行って来たんですが、関西PHP勉強会でAWSと関係のないものを習得してきましたよwという話。 大きくは2点で、@omoonさんのSaaSの話。HerokuなどのSaaS全盛期の中、PHPのSasSであるPagoda Boxなるものがあるらしい。ってのと@slywalkerさんのComposerの話。これも今流行のパッケージ管理の話でJSなどのフロントエンドパッケージ管理ツールのBOWERなんかがありますが、PHPならComposerでしょ!?ってことで。
当日のスライド一覧
- Dive into the Cloud with our buddy, lovely PHP! @omoon
- AWS SDK for PHPをインストールするならComposerでしょ!@slywalker
- いまどきのPHP@shin1x1
用意するもの
必須
- Git
あると便利
今回は手元のGitをdeployするだけなので、Clientからの操作で説明します。Webからの処理が意外と不便だったってのもありますが。。。
Demo
自分と言えばヤフオク、ヤフオクといえば俺、みたいなところがあるので、ヤフオクネタで作ってみました。開くとYConnect(Yahoo! Japan oauth2.0)で認証取りに行って、出品中一覧を表示します。
読み込みにやたらと時間がかかるのだけど、YConnectにいきなり接続しに行くからかな?この辺課題だなぁ。
作業手順
1) てきとーにプロジェクトを作る
Demoそのまま使うのであればgithubにpagodabox
branchで置いたのでそれをクローン。
➜ ~ 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の管理画面からの場合は別途git
のremote
を設定する必要あり
ここ参照
➜ 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 !!!!