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

しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

WebMatrix と FuelPHP を使って Web アプリ開発をしてみた

ちょっと前になるんですが、どうしても PHP での開発をしないといけなくなったので義務として WebMatrix と、めんたろ社長におすすめして貰った FuelPHP で開発することにしました。

FuelPHP » A simple, flexible, community driven PHP5.3 framework.

FuelPHP は PHP 5.3 以上で動作する、良い感じな MVC フレームワークです。開発スタイルは ASP.NET MVC やってたら割と親しみやすい感じかと思います。

で、早速 WebMatrix を使って開発環境を作ります。当然ながら PHP なので、PHP の空のサイトを選んでおきましょう。

f:id:shiba-yan:20130924223720p:plain

サイトの作成中に PHP が無い場合はインストールしてくれます。便利ですな。

FuelPHP のインストールは手動で行うしかないので、公式サイトから現時点での最新版である fuelphp-1.6.1.zip をダウンロードして展開します。

f:id:shiba-yan:20130924224419p:plain

docs は単なるドキュメントなので、それ以外を WebMatrix で作成したフォルダに全部コピーします。そして WebMatrix 上で F5 を押すとこんな感じになるはずです。

f:id:shiba-yan:20130924224610p:plain

何となくそれっぽくなりましたね。

この段階で実行してみると 403 エラーになります。ドキュメントルートに何もないから当然ですね。

f:id:shiba-yan:20130924224912p:plain

Apache などで動かす場合には public 以下をドキュメントルートにするのが一般的ですが、WebMatrix の場合は開いているフォルダがドキュメントルートになってしまうので、このままだと上手く動きません。

なので、IIS の URL リライトモジュールを使ってパスを書き換えてあげることにします。めんどくさい人は、以下の Web.config をコピペすれば良いと思います。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect Static Resources" stopProcessing="true">
                    <match url="^(ico|assets|css|img|js)(.*)$" />
                    <action type="Rewrite" url="public/{R:1}{R:2}" appendQueryString="false" />
                </rule>
                <rule name="Rewrite Root" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="public/index.php?/{R:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

これを Web.config という名前でルートに保存して、もう一度実行するとエラーメッセージが変わります。

f:id:shiba-yan:20130924225606p:plain

何やら composer.phar update というコマンドを実行しろと言っていますね。composer.phar というのはよく分かっていないですが、 NuGet 的なものみたいです。

素直にコマンドを実行して、もう一度実行するとちゃんと FuelPHP のデフォルトページが表示されました。

f:id:shiba-yan:20130924230148p:plain

これで開発の準備は出来たので、あとは好きなようにコードを書くだけです。

中には外部からアクセス可能な場所にソースを置いていることが気になる人もいると思いますが、適切に ACL の設定を行いさえすれば問題ないですね。

これに関係して、ウェブマトリクスマンに WebMatrix 最終奥義というものを教えてもらったので、近々面白いことをしようかと思います。