Windows Azure

phpMyAdminは、WebベースのMySQLデータベースの管理ツールです。
テーブル作成、データの編集、データのエクスポート・インポートなど多くのタスクに使用します。
Windows AzureでMySQLのDB管理をするのに必要なツールだと思います。
Windows Azure Web SitesでphpMyAdminをインストールして設定する方法について説明します。

1. 空のサイトを作成する

最初に、Windows Azureで新しいサイトを作成します。
1サブスクリプションにつき10個まで無料でサイトを作成できるので、phpMyAdminは無料で動作させることができます。
Windows Azureポータル上の[Quick Create]オプションで新しい空のサイトを作成します。

2. MySQLデータベースの接続文字列の取得

すでに用意しているMySQLデータベースを使用するか、MySQLデータベースを作成して、サイト用のデータベースへのリソースページへのリンクを使用します。

サイトのダッシュボードページで、[View conneciton strings]を使用して、データベースの接続文字列を取得します。

phpMyAdmin経由でデータベースにログオンするために接続文字列を使用します。
接続文字列は次のようになります。

Database=some-db-name;Data Source=some-hostname;User Id=some-username;Password=some-password 

3. phpMyAdminのダウンロードと設定

オフィシャルサイトから最新のphpMyAdminを取得します。
ダウンロードしたら、解凍します。
example、js、libraries、setup、themesディレクトリと同じところにconfig.inc.phpファイルが作成されます。
そのファイルに以下の内容を貼り付けます。

<?php 
$cfg[‘blowfish_secret’] = ‘ba17c1ec07d65003’;  // use here a value of your choice 
$i = 0; 
/* First server */ 
$i++; 
/* Authentication type */ 
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’; 
/* Server parameters */ 
$cfg[‘Servers’][$i][‘host’] = ‘some-hostname’;  // Replace with value from connection string 
$cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’; 
$cfg[‘Servers’][$i][‘compress’] = false; 
$cfg[‘Servers’][$i][‘extension’] = ‘mysqli’; 
$cfg[‘Servers’][$i][‘AllowNoPassword’] = false; 
?> 

5. Windows AzureにphpMyAdminファイルをアップロードする

複数のアップロード方法が提供されていますが、ここではFTPを使用します。
FTPホスト名とユーザー名を管理ポータルのサイトのダッシュボードから取得し、接続します。
/site/wwwroot/ディレクトリにアップロードします。

6. MySQLデータベースにログオンする

新規に作成されたサイトにブラウザでアクセスします。
接続文字列から、ユーザIDとパスワードを確認してログオンします。

元ネタ

phpMyAdmin on Windows Azure Web Sitesをざっくり意訳した投稿です。

Windows Azure

1. phpinfo()

これがもっともよく使用するツールです。
PHPランタイムにかんする多くの情報を出力してくれます。
有効になっているPHPエクステンションや、サーバー情報やPHPの設定を確認することができます。

phpinfo()を使用するために、次の1行を含むPHPファイルを作成します。

<?php phpinfo(); ?> 

このファイル名は推測しにくいファイル名にしてください。
phpinfo.phpみたいなのは避けてください。
サイトのrootディレクトリにアップロードしてください。Webブラウザにアップロードすると次のようなページが出力されます。

phpinfoから出力される情報はセキュリティ上機敏な情報が含まれています。必要性がなくなったら、削除する用意してください。

2. wincache.php

WinCacheエクステンションは、PHP WebSitesで既定で有効になっています。
オペレーションコードやユーザーキャッシュの動作状況、現在のキャッシュコンテンツを確認するには、winchache source code リポジトリからダウンロードするwinchache.phpスクリプトを使用します。
スクリプトを取得し、ユーザ名とパスワードを編集して利用します。

/**  * ======================== CONFIGURATION SETTINGS ==============================
* If you do not want to use authentication for this page, set USE_AUTHENTICATION to 0.
* If you use authentication then replace the default password.
*/ 
define(‘USE_AUTHENTICATION’, 1); 
define(‘USERNAME’, ‘someusername’); 
define(‘PASSWORD’, ‘somepassword’); 

websitesのルートディレクトリにアップロードし、Webブラウザでアクセスします。
次のような結果が出力されます。

3. PHP エラーログ

Windows AzureのPHPランタイムは、サイトのFTPルートは以下の/LogFilesにアプリケーションエラーログが格納されるように設定されています。

アプリケーションが動作していなかったり、ブランクページを表示する場合、エラーの詳細を確認するために、このファイルを参照してください。また運用時も定期的に確認するようにすると良いです。

デフォルトのエラーログ出力箇所を別の場所に変更することもできます。
.user.iniと呼ばれるファイルを作成し、次の行を追加します。

error_log=D:\Home\site\wwwroot\php_errors.log 

websaitsのルートディレクトリ(wwwroot)配下にファイルをアップロードします。

4. PHP display_errors

PHPランタイムのdisplay_errorsディレクティブは、HTTPレスポンスでえーらーを表示します。
プロダクション環境では、webサイト訪問者にエラーを見せないために、
OFFに設定しておくべきです。
開発、デバッグ目的で一時的に使用する際には、.user.iniファイルに次の内容を記載してください。

display_errors=On 
html_errors=On 
error_reporting = E_ALL 

アプリケーションでエラーがあると、Webブラウザにエラーが出力されます。

5. HTTPログ、詳細エラーメッセージ、失敗リクエストのトレース

デフォルトでは、HTTPロギング、詳細エラーメッセージ失敗リクエストのトレースはオフになっています。有効にするには、Windows AzureポータルでCONFIGUREページを使用します。

有効にすると、サイトのFTPルート配下のディレクトリにログが出力されます。

  • HTTPログファイル:/LogFiles/http/RawLogs;
  • 詳細エラーログ:/LogFiles/DetailedErrors;
  • 失敗リクエストのトレースログ:/LogFiles/W3SVC#########/;

6. XDebug PHP エクステンション

Xdebugは、数多くの有益なデバッグ情報を提供してくれるPHPスクリプトのプロファイリング、デバッグに役立つ、とても有名なPHPエクステンションです。
Windows AzureでXdebugを有効にするあために、ダウンロードページから適切にビルドされたXDebugエクステンションをダウンロードします。PHP 5.3を使用している場合は、「5.3 VC9 (32 bit)」をダウンロードします。PHP 5.4を使用している場合は、「5.4 VC9 (32 bit)」をダウンロードします。Windwos OSno64ビットを使用していても、32ビットでビルドされたものを使用します。
スレッドセーフ(TS)ビルドは使用しないでください。

/site/wwwroot/binディレクトリに、php_xdebug_####.dllファイルをアップロードしてください。
binディレクトリが存在しない場合は作成してください。
xdebugエクステンションを有効にするために、アップロード後Windows AzureポータルのCONFIGUREタブを使用します。

xdebugを有効にすると、詳細なエラーメッセージとコールスタックを取得できるようになります。

7. ClearDBのステータス

MYSQLデータベースのホスティングを提供するClearDBサービスはWindows Azureポータルに統合されています。ポータルからMySQLデータベースの管理と購入ができます。
課金も統合されており、ClearDBの課金はWindows Azureサブスクリプションに含まれています。

ADD-ONSタブを使用して、ClearDB管理ページにアクセスします。

ほかのデータベース管理情報にアクセスするのと同様、ClearDBクエリ情報ページが開きます。

データベースでのクエリの性能情報チャートが表示されます。

参考情報

PHP Troubleshooting in Windows Azure Web Sitesをざっくり抜粋して意訳した投稿です。

Windows Azure

Windows Azure Web SitesはデフォルトでPHPをサポートしており、さらにユーザ自身のFastCGIを設定することができます。

Windows Azure Web Sites(WAWS)でカスタムFastCGIを設定する方法について説明します。

  1. WAWSウェブサイトにFastCGI実行ファイルをデプロイします。
    例えば、ウェブサイトのbinフォルダーなどにアップロードします。
  2. 次の内容を含んだASPファイルを作成します。

        <%
        Response.Write Request.ServerVariables("APPL_PHYSICAL_PATH") 
    %>

  3. ASPファイルをウェブサイトのコンテンツフォルダーにアップロードし、IEで開きます。
    IEにWAWSサイトのルートPATHが表示されます。
    Azure環境では、
    C:\DWASFiles\Sites\YourSiteName\VirtualDirectory0\site\wwwroot\
    オンプレミス環境では、
    C:\inetpub\temp\DWASFiles\Sites\YourSiteName\VirtualDirectory0\site\wwwroot\
  4. Windows Azure管理ポータルにログインし、ウェブサイトに移動し、カスタムFastCGIの設定をします。
  5. CONFIGURATIONをクリックします。スクロールバーを下まで下げ、「handler mappings」セクションを見つけます。
  6. 「EXTENSION」で、FastCGIによって処理する必要があるファイル拡張子を定義します。「SCRIPT PROCESSOR PATH」で、FastCGI実行ファイルのフルパスを定義します。
    例えば、
    “C:\DWASFiles\Sites\YourSiteName\VirtualDirectory0\site\wwwroot\bin\FastCGI.exe”
  7. Configurationを保存します。

元情報

MSDNフォーラム; How to configure custom FastCGI on Windows Azure Web Sites (WAWS)

Windows Azure

Windows Azure Webサイト(WAWS)の更新が完了し、WAWS上で.NET Framework 4.5が動作しています。

Windows Azure Webサイト(WAWS)チームは、顧客からのフィードバックを受け、新しい機能追加、パフォーマンスとユーザーエクスペリエンスの改善にコミットしています。顧客から一番多くのフィードバックを受けた.NET Framework 4.5のサポートに対応するため、アップデートしました。

このアップデートで、すべてのWindows Azure Webサイトで.NET Framewrok4.5が動作するようになります。.NET Framework 4.5はインプレイスアップグレードされます。.NET4と.NET4.5の共存はサポートされていません。.NET4で作成されたアプリケーションは特に変更することなく動作します。

Windows Azure WebサイトでHTML5 Webソケットを提供しますか?

HTML 5 Webソケットのサポートには、.NET4.5とWin2012の両方が必要です。
Windows Azure Webサイトは、Win2008R2上で動作しており、HTML5Webソケットに対応していません。Win2012用のWAWSは間もなく提供予定です。

.NET Framework 4.5で提供される機能

.NET 4.5がインプレイスアップグレードの理由

.NET 4.5は、.NET4のサービスパック的な位置づけで設計されています。
.NET4に機能を追加するものです。
.NET4.5をインストールすると単純に、.NET4のアセンブリを置き換えるのです。

情報源

MSDNフォーラムに投稿された「WAWS Preview to support .NET Framework 4.5」を一部抜粋し意訳した投稿です。

Windows Azure

IIS 7移行であれば、トレースルールを定義することでWebサイトやアプリケーション、ディレクトリの失敗リクエストトレースを取得することができます。

2種類のルールが提供されています。

  • ステータスコード(statusCode)
    トレースしたいステータスコードを指定します。コンマでステータスコードを区切ることで、複数のステータスコードを入力することができます。「404.2,500」のようなサブステータスコードを使用することもでき、また「400-599」のように範囲でサブステータスを指定することもできます。
  • かかった時間(timeTaken)
    プロセスがリクエストを処理するのに使用できる最大時間を指定できます。指定した時間を超えると失敗となり、トレースされます。

Windows Azure Web Sites(WAWS)では、ポータル上で、「FAILED REQUESTTRACING」をオンにすることで使用できます。

しかし、WAWSではステータスコード「400-600」のルールのみが失敗リクエストとして定義されています。このルールでは、処理に長い時間かかっているが、ステータスコードが200となった処理をトレースすることができます。

ステータスコードが400以上のリクエスト、時間がかかったリクエストの両方をトレースするためには次の手順で設定する必要がります。

  1. Webサイトのweb.configで次の設定をします。
  2. WAWSポータルで、IIS loggingと「FAILED REQUESTTRACING」をオンにします。

<system.webServer>
  <tracing>
    <traceFailedRequests>
      <remove path="*" />
      <add path="*">
        <traceAreas>
          <add provider="ASP" verbosity="Verbose" />
          <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
          <add provider="ISAPI Extension" verbosity="Verbose" />
          <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" />
        </traceAreas>
        <failureDefinitions timeTaken="00:00:10" statusCodes="400-999" />
      </add>
    </traceFailedRequests>
  </tracing>
</system.webServer>

この変更で、次のリクエストをトレースできるようになります。

  • IISパイプラインで10秒以上かかっているリクエスト
  • ステータスコードが400番以上

情報源

MSDNフォーラムで、マイクロソフトのWZhaoさんが投稿した「Using Failed Request Tracing for slow requests」を意訳したエントリーです。