この記事で既に説明したとおりに、Azure Service プロジェクトを追加して PHP Web ロールを追加します。
Web ロールのルート ディレクトリにある bin フォルダー内に php フォルダーを作成し、この php フォルダーに PHP ランタイム (すべてのバイナリ、構成ファイル、サブフォルダーなど) を追加します。
(省略可能) PHP ランタイムで Microsoft Drivers for PHP for SQL Server が使用されている場合は、プロビジョニング時に SQL Server Native Client 2012 をインストールするように Web ロールを構成する必要があります。 これを行うには、Web ロールのルート ディレクトリにある bin フォルダーに sqlncli.msi x64 installer を追加します。 次のステップで説明するスタートアップ スクリプトでは、ロールのプロビジョニング時にインストーラーが自動的に実行されます。 PHP ランタイムで Microsoft Drivers for PHP for SQL Server が使用されていない場合は、下記の行を、次のステップで示すスクリプトから削除してもかまいません。
@ECHO ON
cd "%~dp0"
if "%EMULATED%"=="true" exit /b 0
msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
SET PHP_FULL_PATH=%~dp0php\php-cgi.exe
SET NEW_PATH=%PATH%;%RoleRoot%\base\x86
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%',maxInstances='12',idleTimeout='60000',activityTimeout='3600',requestTimeout='60000',instanceMaxRequests='10000',protocol='NamedPipe',flushNamedPipe='False']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PATH',value='%NEW_PATH%']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/handlers /+"[name='PHP',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='%PHP_FULL_PATH%',resourceType='Either',requireAccess='Script']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /"[fullPath='%PHP_FULL_PATH%'].queueLength:50000"
アプリケーション ファイルを Web ロールのルート ディレクトリに追加します。これが Web サーバーのルート ディレクトリになります。
(省略可能) PHP ランタイムで Microsoft Drivers for PHP for SQL Server が使用されている場合は、プロビジョニング時に SQL Server Native Client 2012 をインストールするように worker ロールを構成する必要があります。 これを行うには、sqlncli.msi x64 インストーラー を worker ロールのルート ディレクトリに追加します。 次のステップで説明するスタートアップ スクリプトでは、ロールのプロビジョニング時にインストーラーが自動的に実行されます。 PHP ランタイムで Microsoft Drivers for PHP for SQL Server が使用されていない場合は、下記の行を、次のステップで示すスクリプトから削除してもかまいません。