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でしょ!?ってことで。
当日のスライド一覧
- 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に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の管理画面からの場合は別途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 !!!!