昨日のPHPer王子 @shin1x1さんのツイートに誘われてやってきました PHP Advent Calendar jp 2011 3日目
書籍化するの大丈夫なんだろうか。しかもTipsでも何でも無いという。
でも使ってみたかったphpcloud
使ってみた感じを公開したかったphpcloud
Zendから発表された phpcloud
phpcloud.comは、「Zend Developer Cloud」と呼ばれる開発環境と、「Zend Application Fabric」と呼ばれる実行環境で構成されます。
Zend Developer Cloudは、開発用のサンドボックス機能やデバッグのためのトレース機能、開発者間の情報共有機能などを備えており、無料で提供される予定。
Zend Application FabricはPHPアプリケーションのモニタリングと管理機能を備えており、通常のPHPアプリケーションのまま、負荷に応じたオートスケーリング機能も提供するとのこと。
引用元:publickey
他の類似した物をあげると
他にもあるかもしれませんが、こんなのがあります。
これまで、Java,Ruby ,Pythonとあったのですが、ついにphpのホスティングサービスが来ました。しかもZendから。
インフラはAmazon EC2を使っているという噂なので、それも確かめてみます。
と小難しい事はさておいて とりあえず、デプロイしなきゃ始まりません。
ログインからcontainer作りまで
TOPページ
登録はもう済んでしまったので、ログインから
http://phpcloud.com にアクセスすると、優しそうなお兄さんがいます。
右上の[Already a hero? login here]からログインします。
管理画面
ログインするとこんな感じの画面が出てきます。
phpcloudではcontainerとapplicationという単位でアプリケーションを管理します。
containerはイメージとしてはVirtualHostのような感じです。
URLはhttp://[$container].my.phpcloud.com/[$application]
という形になるので、きっとcontainerの名前は世界中でユニークになるのでは無いかと思われます。
まずはcontainerを作ります。
この画面にある[CREATE CONTAINER]ボタンを押します。
現在は1ユーザ2個までcontainerが作れます。
出来た!
ちょっとこの段階でURLっぽいproducts.my.phpcloud.comをクリックしてみると、、、、
your new application container is up and running
と、なんだか新しいapplication containerが出来ましたよーで、動いてるんだぜみたいな事を表示してくれます。
ちょっと休憩
ほんとにAmazonEC2を使ってるかな?
ちなみにこのドメインをdigって見ると
$ dig products.my.phpcloud.com ; <<>> DiG 9.7.3-P3 <<>> products.my.phpcloud.com 〜略〜 ;; QUESTION SECTION: ;products.my.phpcloud.com. IN A ;; ANSWER SECTION: products.my.phpcloud.com. 300 IN A 107.20.77.208 ;; Query time: 99 msec ;; SERVER: 222.146.35.1#53(222.146.35.1) ;; WHEN: Thu Dec 1 14:22:04 2011 ;; MSG SIZE rcvd: 58
となっておりIPアドレス107.20.77.208な事がわかります。
このIPアドレスを逆引きしてみると
$ dig -x 107.20.77.208 ; <<>> DiG 9.7.3-P3 <<>> -x 107.20.77.208 〜略〜 ;; QUESTION SECTION: ;208.77.20.107.in-addr.arpa. IN PTR ;; ANSWER SECTION: 208.77.20.107.in-addr.arpa. 300 IN PTR ec2-107-20-77-208.compute-1.amazonaws.com.
噂通りAmazon EC2でした
Application作るぞー
Applicationを作る
では、次にapplicationを作ります。左ペインにあるMyContainersの中から、今作ったproductsをクリックするとそこにあるapplicationが表示されます。
containerを作ってすぐ段階ではdefaultとして何かデプロイされていますが、これは消しちゃって大丈夫です。
新しくapplicationを作る時に/配下のURLを指定する必要があるので、むしろ消してしまった方がURLの付け方とかを悩まなくて済むかもしれません。
appicationを作成しませう。
Deployed Applicationsという見出しの横にある[add / remove apps]のリンクをクリックします。
テンプレートからapplicationを作るぞー
幾つかテンプレートが用意されていて、選ぶだけでZendFramework,ZendFramework2.0,Drupal,Joomla, Magento,Wordpress,phpBBが簡単に出来ます。
DrupalとかJoomlaとかやったほうが見栄えはいいのですが、自分はZendFrameworkが好きなのでZendFrameworkを選びます。
名前をつけよう
applicationの名前とアクセスする為のパスを指定するだけの簡単なお仕事です。
そして今作ったapplicationに対してアクセスしてみます。
URLはhttp://{$container_name}.my.phpcloud.com/{$application_name}
です。
この裸のZendFrameworkどうしてくれよう。
phpcloudはgitでapplicationのソースコードにアクセスすることができます。
URLは
https://{$container_name}@{$container_name}.my.phpcloud.com/git/{$application_name}.git
です。
{$container_name}、{$application_name}は読み替えて下さい。
さっきcalendarというapplicationを作っていたので、そいつのソースを持ってきてみます。
$ git clone https://products@products.my.phpcloud.com/git/calendar.git calendar Cloning into calendar... Password: 「container作成時に入力したパスワード」 remote: Counting objects: 24, done. remote: Compressing objects: 100% (17/17), done. remote: Total 24 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (24/24), done. $ $ $ $ cd calendar calendar$ find ./ -not -regex ".*\.git.*" ./ .//.zfproject.xml .//application .//application/Bootstrap.php .//application/configs .//application/configs/application.ini .//application/controllers .//application/controllers/ErrorController.php .//application/controllers/IndexController.php .//application/views .//application/views/scripts .//application/views/scripts/error .//application/views/scripts/error/error.phtml .//application/views/scripts/index .//application/views/scripts/index/index.phtml .//docs .//docs/README.txt .//public .//public/.htaccess .//public/index.php .//tests .//tests/application .//tests/application/bootstrap.php .//tests/library .//tests/library/bootstrap.php .//tests/phpunit.xml
という感じでZendFrameworkなアプリケーションのスケルトンがダウンロードできました。
デプロイもgitを使ってします。
このファイルの中での注目はもちろん「.htaccess」
.htaccessがいじれるというのはそれだけでかなり面白い予感です。ZendFrameworkが動く=rewriteは使える。
もし時間があれば、次回は.htaccess @phpcloudを深く追ってみたいと思います。
使い勝手
全体的に迷うことなくcontainerを作ってapplicationを作って開発をすることができそう。
後は実際の運用環境はどうするのか、データベースはどうなるのかなど、
まだまだ不明なところも多いですが、開発環境として使うには結構使い勝手が良いのかなと
思いました。
最後に
今回軽く触れたphpcloud あと4人招待することが出来ます。
もし、使ってみたい人がいましたら、
Twitter で @tottokugに「phpcloud使ってみたい!」とつぶやいて下さい。
人数が多い場合は、適当に選びマス。