Requirements

  • Windows Azure Tools for Microsoft Visual Studio 2010 - August 2011 (1.4.40727.1601)

How to USE

  1. PHPFTPRoleのResources\phpフォルダに、PHPランタイムをコピーします。
  2. Resources\phpフォルダにphp.iniを作成し、php.iniファイルのプロパティのビルド アクションを「コンテンツ」にします。
  3. ソリューション エクスプローラからWindowsAzureWebHostingSuite - Roles - PHPFTPRoleを開き、Settingsに以下の設定をします。
    • UserName:FTPユーザー名
    • Password:FTPユーザーのパスワード(8文字以上。大文字、小文字、数字、記号のすべてを含むこと。UserNameが含まれてはいけません(大文字小文字が違くてもNG)。)
    • ContainerName:Azure Driveのvhdファイルを作成するコンテナ名(そのコンテナが存在しない場合は作成されます)
    • ResourcesFolder:PHPランタイムなどのリソースがあるフォルダ
    • AzureDriveSizeInMB:作成するAzure Driveのvhdファイルのサイズ(すでにファイルが存在する場合は無視されます)
    • AzureDriveConnectionString:Azure Driveのvhdファイルが存在するAzure Storage ServiceへのConnection String
    • wwwroot:IIS Webサイトの物理フォルダ名
    • ftproot:IIS FTPサイトの物理フォルダ名
    • StorageConnectionString:設定ファイルを保存するwhs-configコンテナを作成するAzure Storage ServiceへのConnection String
    • Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString:Diagnosticsを出力するAzure Storage ServiceへのConnection String
    • Windows Azure Web Hosting Suite Multi Web向けの追加パラメータ
      • AzureDriveShareName:共有ネットワーク名
      • ConfigContainer:設定ファイルを保存するコンテナ名
      • SyncInterval (WebSiteロールのみ):FTP ServerからWeb Serverへ同期する間隔(分)
  4. 以上で設定は完了ですので、Deployします。
  5. StorageConnectionStringで指定したAzure BLOBのwhs-configコンテナに以下の設定ファイルを置くことができます。
    • php.ini
      • デプロイあるいはインスタンスが初期状態にリセットされたときに、反映されます。
    • InnerWeb.config
      • デプロイあるいはインスタンスが初期状態にリセットされたときに、IISサイトの物理フォルダにWeb.configとしてコピーされます。
      • 以下の変数を利用することができます。
        • ResourceFullPath:PHPランタイムなどのリソースがあるフォルダ
      • <?xml version="1.0"?>
        <configuration>
          <system.web>
            <compilation debug="true" targetFramework="4.0" />
          </system.web>
          <system.webServer>
            <modules runAllManagedModulesForAllRequests="true"/>
            <defaultDocument>
              <files>
                <clear />
                <add value="index.php" />
                <add value="index.html" />
              </files>
            </defaultDocument>
            <handlers>
              <add
                name="PHP FastCGI"
                verb="*"
                path="*.php"
                modules="FastCgiModule"
                scriptProcessor="{ResourceFullPath}\php\php-cgi.exe" />
            </handlers>
          </system.webServer>
        </configuration>
    • initialize.cmd

      • デプロイあるいはインスタンスが初期状態にリセットされたときに、実行されます。
      • 以下の環境変数を利用することができます。
        • roleroot:ロールのアプリケーションが配置されたドライブ
        • ftproot:IIS FTPサイトの物理フォルダ
        • wwwroot:IIS Webサイトの物理フォルダ
      • @echo off
        schtasks /create /sc daily /MO 1 /tn DemoTask /ru "NT AUTHORITY\LOCALSERVICE" /tr "%%roleroot%%\approot\resources\php\php.exe %%ftproot%%\batch\test.php" /st 00:00 

 

よくあるトラブル

  • デプロイしたらいつまでたってもぐるぐる祭り
    1. Passwordが不正かもしれません。複雑なパスワードになっていないとDeployが成功しません。
      • 大文字、小文字、数字、記号のすべてを含む
      • 8文字以上
      • 大文字小文字が異なっていてもUserNameと同じものが含まれていてはいけません
    2. 参照設定しているDLLのバージョンに不整合があるかもしれません。
      • VMManagerServiceプロジェクトの「Microsoft.Web.Administration」のバージョンで不整合がおこることが多いようです。
        一度削除し、%SystemRoot%\system32\inetsrv\Microsoft.Web.Administration.dllを参照しなおしてください。

 

Last edited Sep 18, 2011 at 7:04 PM by kuniteru, version 8

Comments

No comments yet.