2011年9月5日月曜日

DotCloud + PHPで「Hello World」をUbuntu 11.04で試してみた

本当に簡単にできました
「Ubuntu?あれだよ、Linuxだよね!」
レベルの僕でも簡単にできました。

このエントリーの目次
1. DotCloudとは
2. まずはDotCloudにサインアップ
3. DotCloudの開発環境を整える
4. DotCloudでHello Worldを作成してみる
5. Hello Worldサービスを公開、Webで確認してみる
6. もし403 Forbiddenと表示されたら。。
7. まとめ

1. DotCloudとは
Paasです。
2サービスまでは無料のようです。
詳しくは以下のエントリーなどから(手抜き)

1. プログラミング言語やデータベースが選べる新世代PaaS「DotCloud」が正式サービス開始 | Publickey
2. PythonでWebアプリつくるのにDotCloudに登録しない手はない | YAMAGUCHI::weblog
3. DotCloudは開発者のための優良なプラットフォーム | ゆーすけべー日記

2. まずはDotCloudにサインアップ
という訳で、まずはDotCloudにアクセスし、サインアップします。

3. DotCloudの開発環境を整える
DotCloudのチュートリアルに従って。

ターミナルにて。
dotcloud環境をインストールするにはeasy_installが必要なので、まずそれをインストールします。
$ sudo apt-get install python-setuptools

続いてチュートリアルに従ってdotcloudをインストールします。
$ sudo easy_install pip && sudo pip install dotcloud

インストール完了したら、まずdotcloudコマンドを実行してAPI Keyを入力します。
$ dotcloud

Enter your api key (You can find it at http://www.dotcloud.com/account/settings):
API KeyはDotCloudのsettingsページから確認できます。

これで環境が構築できました。

4. DotCloudでHello Worldを作成してみる
まずは、これから作るHello Worldサービスに対してdotcloudにおける名前空間を設定します。
$ dotcloud create helloworld

こんなふうに表示されれば成功。
Created application "helloworld"

次にHelloWorld用のディレクトリを適当に作成します。
僕は例えば以下のように作成しました。
~/work/dotcloud/helloworld/

(設定した名前空間と同じ「helloworld」でディレクトリ作ってますが、本来は一致させる必要はありません)

以降はこのhelloworldディレクトリで作業をし、ここにプログラムなどを配置していきます。
今回作るHello Worldサービスは、最終的には以下のようなファイル構成になります。
$ tree ~/work/dotcloud/helloworld/
~/work/dotcloud/helloworld/
├── dotcloud.yml
└── index.php

それでは、簡単なindex.phpを作成します。
<?php

echo 'hello world! ';

次にdotcloud.ymlです。
これはHello Worldサービスンについての設定ファイルで、このファイル名にしないといけないようです。
以下の記述をします(インデントを表すために全角スペースにしてますが、半角スペースにしてください)。
www:

type: php

これでHello Worldサービスの作成が完了しました。
次はいよいよリリースです。

5. Hello Worldサービスを公開、Webで確認してみる
リリースもコマンド一発で簡単にできます。

まずは、念の為カレントディレクトリを確認。
~/work/dotcloud/helloworld/

ではリリースです。
コマンドは以下。
$ dotcloud push helloworld .

僕の場合、リリース完了まで10秒くらいかかりました。

ターミナルの表示を見てると、sshで接続してrsyncしてbuildして〜みたいなコトが行われています。

最終的には以下の表示がされれば完了です!
「このサービスは以下のURLで見れるよー」って書かれてますね。
The build finished successfully
2011-09-04 16:01:55 [api] Deploy finished

Deployment finished. Your application is available at the following URLs
www: http://helloworld-<username>.dotcloud.com/

<username>の前の「helloworld」は、設定した名前空間と一致します。

という訳で、実際にHello Worldのページを確認してみてください。
ちなみに、以下のコマンドを打つとURLが確認できます。
$ dotcloud url helloworld

「index.php」だとドメインだけでアクセスできるのかな??
ちなみに、index.phpと同時にhoge.phpを作成したとき、hoge.phpへのアクセスは
「http://helloworld-<username>.dotcloud.com/hoge.php」
でできます。

6. もし403 Forbiddenと表示されたら。。
ファイル構成などが間違っている可能性があります。
僕も一回403になりました。

繰り返しになりますが、今回の例では以下のファイル構成にして
$ tree ~/work/dotcloud/helloworld/
~/work/dotcloud/helloworld/
├── dotcloud.yml
└── index.php

以下のディレクトリにて
~/work/dotcloud/helloworld/
以下のコマンドでリリースしています。
$ dotcloud push helloworld

7. まとめ
という訳で、簡単にですがまずはとにかくHello Worldを試してみました。
環境構築がかなり苦手な僕ですが、それでも非常に簡単にできました。
すごい!

DotCloudを試した理由はNode.jsが動くからです。
これで何か作ってみたいなーと。
個人的に勉強中のErlangもalphaになっているけど、一応使えるのかな。。?

ちなみに、DotCloudのPHPは、Apacheではなくnginxで動いているようです(nginxのWikipedia)。
何それおいしいの。。。

以上です。
繰り返しになりますが、本当に簡単なのでサクッと試してみてはいかがでしょうか。

Related Posts Plugin for WordPress, Blogger...