AppFogで始めるFuelPHP

がっつり使ったわけではないので、とりあえず環境構築まで。
タイトルが変だけど、まーいいか。

AppFogのSIGN UP

AppFogのアカウントが無いと始まらないので、

http://www.appfog.com/

にアクセスし、右上『SIGN UP』からAppFogのアカウントを作成します。

アプリケーションの作成

次にアプリケーション(PHP+MySQL)の作成です。
以下のサイトを参考にさせて頂きました。

appfog に PHP + MySQL 環境を作る

上記サイトを参考に、PHP+MySQLのアプリケーションを作成します。

AppFogコマンドラインツールのインストール

以下のページを参考にAppFog用のコマンドラインツールをインストールします。

http://docs.appfog.com/getting-started/af-cli

$ gem install af

FuelPHPの用意

ローカルにFuelPHPを用意します。

$ wget https://github.com/downloads/fuel/fuel/fuelphp-1.4.zip
$ unzip fuelphp-1.4.zip
$ cd fuelphp-1.4
$ vi .htaccess
$ vi fuel/app/config/config.php
$ php oil refine install
$ vi fuel/app/config/db.php
$ vi fuel/app/config/development/db.php

.htaccess

RewriteEngine On
RewriteBase /public
RewriteRule (.*) /public/$1 [L]

config.php

とりあえず最低限の設定

<?php
return array(
    'base_url' => '/',
    'default_timezone' => 'Asia/Tokyo'
);

※2012/11/30追記
『base_url』を設定しないとURLにpublicが含まれるようです。
参考)
PHPFog の FuelPHP アプリを AppFog に移行してみる (2) - A Day in Serenity @ kenjis

config/db.php

一応、MongoDB/Redisの設定も。

<?php
$j = json_decode(getenv('VCAP_SERVICES'));
$mongo = $j->{'mongodb-1.8'}[0]->{'credentials'};
$redis = $j->{'redis-2.2'}[0]->{'credentials'};

return array(
    'mongo' => array(
        'default' => array(
            'hostname' => $mongo->{'host'},
            'port'     => $mongo->{'port'},
            'username' => $mongo->{'username'},
            'password' => $mongo->{'password'},
            'database' => $mongo->{'db'}
        )
    ),
    'redis' => array(
        'default' => array(
            'hostname' => $redis->{'host'},
            'port'     => $redis->{'port'},
            'password' => $redis->{'password'}
        )
    )
);

development/db.php

<?php
$j = json_decode(getenv('VCAP_SERVICES'));
$mysql = $j->{'mysql-5.1'}[0]->{'credentials'};

return array(
    'default' => array(
        'connect' => array(
            'dsn' => 'mysql:host='.$mysql->{'host'}.';dbname='.$mysql->{'name'},
            'username' => $mysql->{'username'},
            'password' => $mysql->{'password'},
        )
    )
);

ここまでで下準備は完了です。

アップロード

afコマンドを使用しファイルをアップロードします。
fuelphpを伸張したディレクトリへ移動し以下を実行。

$ af login
$ af update {name}

例)
$ af update myapp

※{name}に入るのは『アプリケーションの作成』時に指定したサブドメイン

確認

実際にURLにアクセスし、FuelPHPのWelcomeが表示されている事が確認出来ればOK!

その他

FuelPHPのRedisクラスを使用しようとしたら、Redisクラスが競合しているらしく、そのままでは使用不可。とりあえず以下のように呼び出し。

<?php
$redis = \Fuel\Core\Redis::forge('default');