「appfog」は、とても手軽で簡単な PaaS 環境で、私は最近実験的なプロジェクトや、WordPress の開発環境として利用させて頂いています。今回は、appfog に、プレーンな PHP + MySQL 環境を構築してみましたので、手順を簡単にご紹介いたします。「appfog 簡単そう!」って思ってもらえると幸いです。
セットアップ
アプリケーションの作成(Webサーバー)
まず、ダッシュボードから、Create App に入り、PHP 環境を選択します。
次に、インフラを選択します。個人的には AWS US East か HP がお気に入りです(理由は URL が短いからですw)。サブドメインも入力して、[Create App] します。
これだけ httpd 環境が出来るのですから、素晴らしいですね!
処理完了後、上の図の例では、http://c5.aws.af.cm にアクセスすると、既にHello World が表示されます。
サービスの作成(MySQL)
次に MySQL をセットアップします。
アプリの管理画面の Services のセクションを開きます。
画面下の方、Provision Service のセクションから、MySQL を選び、DB 名を入力してから、[Create] します。
これだけで、アプリケーションから利用できる MySQL のセットアップが完了です。
DBへの接続情報を取得するには
さて、PHP から MySQL へ接続情報はどのように入手できるでしょうか?
appfog の場合、DB 接続の為のホストや、ユーザー名、パスワードといった情報は、VCAP_SERVICES という環境変数より JSON で取得できます。appfog のドキュメントだと、次ページに関連の記述があります。
http://docs.appfog.com/services/overview
この環境変数を取得し、JSON をパースして DB アクセス情報を取得する PHP スクリプトは以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php $services_json = getenv('VCAP_SERVICES'); $services = json_decode($services_json, true); $config = null; foreach ($services as $name => $service) { if (0 === stripos($name, 'mysql')) { $config = $service[0]['credentials']; break; } } is_null($config) && die('MySQL service information not found.'); $db_hostname = $config["hostname"]; $db_hostport = $config["port"]; $db_username = $config["user"]; $db_password = $config["password"]; |
以上、ということで、簡単ですねー! DB接続情報の取得は少々面倒に思われるかも知れませんが、全体を通してとてもシンプルで扱い易い PaaS 環境です。無料の基本利用枠があり、トラフィックさえ少ない感じなら5サイトぐらいは運用できそうです。環境を作ったり削除したりも Web の管理画面から簡単に出来たり、これまで使った PaaS の中では一番気に入っています。
ちなみに、好きなものを好きと言ってるだけです。ステマじゃありませんのであしからず♪