読者です 読者をやめる 読者になる 読者になる

かれ4

かれこれ4個目のブログ

phpcloudを使ってみた

昨日の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]からログインします。

ログイン

登録時に決めたusernameとパスワードを入れてログインします。

管理画面

ログインするとこんな感じの画面が出てきます。
phpcloudではcontainerとapplicationという単位でアプリケーションを管理します。
containerはイメージとしてはVirtualHostのような感じです。
URLはhttp://[$container].my.phpcloud.com/[$application]
という形になるので、きっとcontainerの名前は世界中でユニークになるのでは無いかと思われます。
まずはcontainerを作ります。
この画面にある[CREATE CONTAINER]ボタンを押します。
現在は1ユーザ2個までcontainerが作れます。

container作るフォーム


今回はproductsというcontainerを作ってみます。container名とパスワードを入力するだけの簡単なお仕事です。

container作るフォームに入力した所


container名は使えるかどうかといったことや、パスワードが短かいよ、簡単だよと、その場でなんか言われます。

SMTPサーバの設定も出来ます。


オプションでSMTPサーバの設定なんかも出来ます。


作成ちう


必要な情報を入れ、[Create Container]ボタンを押せば、20秒ほどくるくるしてcontainerは出来上がります。

containerが出来ました


出来上がるとこの画面に戻され、↑こんな感じで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の一覧画面


今あるapplicationの一覧が表示されてしまっています。
[+New Application]のボタンがあるので、これをポチッとします。

テンプレートから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の画面


無事にZendFrameworkが動いていそうです

この裸の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使ってみたい!」とつぶやいて下さい。
人数が多い場合は、適当に選びマス。