Azure上でPHPを動かしてみる(2)

昨日の日記への追加事項です(・∀・)

php.ini

まず、php.iniの場所の指定方法がわからなかった件についての補足です。
コレ、そもそもphp.iniがデプロイ対象に含まれていないというオチでした(´д`;)


Cloud Serviceプロジェクトのbinやobj下を確認したらphp.iniが含まれていなかったので、php.iniの[ビルドアクション]を「コンテンツ」に、[出力ディレクトリにコピー]を「新しい場合はコピーする」にしてデプロイ&動作確認したところOK。
下記の出力でも、Loaded Configuration FileがE:\php\php.iniになっているのを確認できました(`・ω・´)*1
http://usaxusa.cloudapp.net/phpinfo.php

URL Rewrite

ついでにURL Rewriteの動作確認も。
設定としては、Web.configのsystem.webServer要素内に下記のようなルールを追加して実験。

<rewrite>
  <rules>
    <rule name="Rewrite Rule" stopProcessing="true">
      <match url="^rewrite/([0-9a-zA-Z/]+)" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="rewrite/index.php?url={R:1}" />
    </rule>
  </rules>
</rewrite>

rewriteディレクトリ下を、1つのPHPアプリケーションと見なすようなカンジで。
内容としては、PHPフレームワークで使用している.htaccessによくあるような設定ですが、物理的に存在しないファイルへのリクエストは全てindex.phpに集めて、そこからフレームワーク内のルーティング機構を使ってフロントコントローラーへ処理をディスパッチ〜みたいな時の設定ですね(・ω・)


これで、下記のような綺麗なURLも処理できることを確認できましたヽ(´ー`)ノ
http://usaxusa.cloudapp.net/rewrite/blog/archive/2009/01/?page=2


あとは、StorageClientサンプルにあるようなREST APIラッパーのPHP版があれば、とりあえず一通りの事をやる分には困らないっていうカンジですかね(・∀・)?

*1:php.iniとしてはmbstringとかを有効にしているのも確認できます(・∀・)