異色のマーケティングで注目を集めているWindows AzureですがPHPの動作環境として真面目に取り組んでみています。今回は開発時に必ず必要になるログの確認方法を見てみようと思います。

Azure上のPHPの正体はFastCGIで動作するWindows上のPHPですが、FATALエラーなどが発生した場合は下記のようなエラー画面が表示されます。

詳細なエラー情報が無い為、エラーへの対処が難しいです。この場合、通常の環境であればログファイルを確認する事になります。ですがAzureの場合は永続化されるファイルストレージは通常では存在しないのでエラーログを出力しないように設定されています。この問題への根本的な対処は別にするとして、ひとまず画面へのエラー表示を行うように設定を変えます。

エラーを詳細に表示するにはWEBロールのプロジェクト内にあるWeb.configの<system.webServer>の中に下記のノードを追加します。(ペースト時にダブルクオートが全角に化けないように注意してください)

<httpErrors errorMode="Detailed"/>

この設定を行えば下記のようにFATALエラーの内容が画面に表示されます。

開発時はこの状態でよいですが、本番環境にこの設定をデプロイしないように注意してください。ログを記録する方法については別途記事にします。

元ネタは英語の記事から引用しました。
Launching My PHP Application On Azure: Take One