Azure App Service Web Apps での PHP の構成方法Configure PHP in Azure App Service Web Apps

はじめにIntroduction

このガイドでは、ビルトインの PHP ランタイムを Azure App Service の Web Apps で構成する方法、カスタムの PHP ランタイムを提供する方法、および拡張機能を有効にする方法を示します。This guide shows you how to configure the built-in PHP runtime for Web Apps in Azure App Service, provide a custom PHP runtime, and enable extensions. App Service を使用するには、 無料試用版にサインアップしてください。To use App Service, sign up for the free trial. このガイドを最大限に活用するには、まず App Service で PHP Web アプリを作成する必要があります。To get the most from this guide, you should first create a PHP web app in App Service.

注意

この記事は、Web アプリについて言及していますが、API アプリとモバイル アプリにも適用されます。Although this article refers to web apps, it also applies to API apps and mobile apps.

方法: ビルトインの PHP バージョンを変更するHow to: Change the built-in PHP version

既定では、App Service Web アプリを作成すると PHP 5.6 がインストールされ、直ちに使用できる状態になります。By default, PHP 5.6 is installed and immediately available for use when you create an App Service web app. 使用可能なリリース リビジョン、既定の構成、および有効な拡張機能を確認するには、 phpinfo() 関数を呼び出すスクリプトをデプロイします。The best way to see the available release revision, its default configuration, and the enabled extensions is to deploy a script that calls the phpinfo() function.

PHP 7.0 および PHP 7.2 バージョンも使用できますが、既定では有効になっていません。PHP 7.0 and PHP 7.2 versions are also available, but not enabled by default. PHP バージョンを更新するには、次のいずれかの方法に従います。To update the PHP version, follow one of these methods:

Azure ポータルAzure portal

  1. Azure Portal で Web アプリに移動し、[設定] ボタンをクリックします。Browse to your web app in the Azure portal and click on the Settings button.

    [保存]

  2. [設定] ブレードで、[アプリケーションの設定] を選択し、新しい PHP バージョンを選択します。From the Settings blade, select Application Settings and choose the new PHP version.

    アプリケーションの設定

  3. [Web アプリの設定] ブレードの上部にある [保存] ボタンをクリックします。Click the Save button at the top of the Web app settings blade.

    構成設定を保存する

Azure PowerShell (Windows)。Azure PowerShell (Windows)

  1. Azure PowerShell を起動し、アカウントにログインします。Open Azure PowerShell, and login to your account:

     PS C:\> Connect-AzureRmAccount
    
  2. Web アプリの PHP バージョンを設定します。Set the PHP version for the web app.

     PS C:\> Set-AzureWebsite -PhpVersion {5.6 | 7.0 | 7.2} -Name {app-name}
    
  3. PHP バージョンが設定されました。The PHP version is now set. これらの設定を確認できます。You can confirm these settings:

     PS C:\> Get-AzureWebsite -Name {app-name} | findstr PhpVersion
    

Azure CLI 2.0 (Linux、Mac、Windows)Azure CLI 2.0 (Linux, Mac, Windows)

Azure コマンド ライン インターフェイスを使用するには、コンピューターに Azure CLI 2.0 をインストールする必要があります。To use the Azure Command-Line Interface, you must Install Azure CLI 2.0 on your computer.

  1. ターミナルを開いてアカウントにログインします。Open Terminal, and login to your account.

     az login
    
  2. サポートされているランタイムの一覧を確認します。Check to see the list of supported runtimes.

     az webapp list-runtimes | grep php
    
  3. Web アプリの PHP バージョンを設定します。Set the PHP version for the web app.

     az webapp config set --php-version {5.6 | 7.0 | 7.1 | 7.2} --name {app-name} --resource-group {resource-group-name}
    
  4. PHP バージョンが設定されました。The PHP version is now set. これらの設定を確認できます。You can confirm these settings:

     az webapp show --name {app-name} --resource-group {resource-group-name}
    

方法: ビルトインの PHP 構成を変更するHow to: Change the built-in PHP configurations

次の手順に従うと、いずれのビルトイン PHP ランタイムについても、任意の構成オプションを変更できます For any built-in PHP runtime, you can change any of the configuration options by following these steps. (php.ini ディレクティブについては、php.ini ディレクティブの一覧を参照してください)。(For information about php.ini directives, see List of php.ini directives.)

PHP_INI_USER、PHP_INI_PERDIR、PHP_INI_ALL 構成設定の変更Changing PHP_INI_USER, PHP_INI_PERDIR, PHP_INI_ALL configuration settings

  1. .user.ini ファイルをルート ディレクトリに追加します。Add a .user.ini file to your root directory.
  2. php.ini ファイルで使用するものと同じ構文を使用して、構成設定を .user.ini ファイルに追加します。Add configuration settings to the .user.ini file using the same syntax you would use in a php.ini file. たとえば、display_errors 設定をオンにして upload_max_filesize を 10 M に設定する場合は、.user.ini ファイルに次のテキストを含めます。For example, if you wanted to turn on the display_errors setting and set upload_max_filesize setting to 10M, your .user.ini file would contain this text:

     ; Example Settings
     display_errors=On
     upload_max_filesize=10M
    
     ; OPTIONAL: Turn this on to write errors to d:\home\LogFiles\php_errors.log
     ; log_errors=On
    
  3. Web アプリをデプロイします。Deploy your web app.
  4. Web アプリを再起動します。Restart the web app. (再起動する必要があるのは、.user.ini ファイルが PHP によって読み取られる頻度が、user_ini.cache_ttl 設定によって制御されるためです。この設定はシステム レベルの設定であり、既定では 300 秒 (5 分) です。(Restarting is necessary because the frequency with which PHP reads .user.ini files is governed by the user_ini.cache_ttl setting, which is a system level setting and is 300 seconds (5 minutes) by default. Web アプリを再起動すると、PHP により、.user.ini ファイル内の新しい設定が強制的に読み取られます。)Restarting the web app forces PHP to read the new settings in the .user.ini file.)

.user.ini ファイルを使用する代わりに、スクリプト内で ini_set() 関数を使用して、システム レベルのディレクティブではない構成オプションを設定することもできます。As an alternative to using a .user.ini file, you can use the ini_set() function in scripts to set configuration options that are not system-level directives.

PHP_INI_SYSTEM 構成設定の変更Changing PHP_INI_SYSTEM configuration settings

  1. アプリの設定 (キー PHP_INI_SCAN_DIR、値 d:\home\site\ini) を Web アプリに追加するAdd an App Setting to your Web App with the key PHP_INI_SCAN_DIR and value d:\home\site\ini
  2. Kudu Console (http://<site-name>.scm.azurewebsite.net) を使用して、d:\home\site\ini ディレクトリに settings.ini ファイルを作成します。Create an settings.ini file using Kudu Console (http://<site-name>.scm.azurewebsite.net) in the d:\home\site\ini directory.
  3. 'php.ini' ファイルで使用するものと同じ構文を使用して、構成設定を settings.ini ファイルに追加します。Add configuration settings to the settings.ini file using the same syntax you would use in a php.ini file. たとえば、curl.cainfo 設定を *.crt ファイルにポイントし、'wincache.maxfilesize' 設定を 512 K に設定すると、settings.ini ファイルには次のテキストが含まれます。For example, if you wanted to point the curl.cainfo setting to a *.crt file and set 'wincache.maxfilesize' setting to 512K, your settings.ini file would contain this text:

     ; Example Settings
     curl.cainfo="%ProgramFiles(x86)%\Git\bin\curl-ca-bundle.crt"
     wincache.maxfilesize=512
    
  4. 変更内容を再度読み込むには、Web アプリを再起動します。To reload the changes, restart your Web App.

方法: 既定の PHP ランタイムで拡張機能を有効にするHow to: Enable extensions in the default PHP runtime

前のセクションにも示されているように、既定の PHP バージョン、既定の構成、および有効な拡張機能を確認するには、 phpinfo()を呼び出すスクリプトをデプロイします。As noted in the previous section, the best way to see the default PHP version, its default configuration, and the enabled extensions is to deploy a script that calls phpinfo(). 追加の拡張機能を有効にするには、次の手順に従います。To enable additional extensions, by following these steps:

Ini 設定を使用して構成します。Configure via ini settings

  1. d:\home\site ディレクトリを ext ディレクトリに追加します。Add a ext directory to the d:\home\site directory.
  2. ext ディレクトリに、.dll 拡張ファイル (php_xdebug.dll など) を配置します。Put .dll extension files in the ext directory (for example, php_xdebug.dll). 拡張機能は、PHP の既定バージョンとの互換性があり、VC9 および非スレッドセーフ (nts) 互換であることを確認してください。Make sure that the extensions are compatible with default version of PHP and are VC9 and non-thread-safe (nts) compatible.
  3. アプリの設定 (キー PHP_INI_SCAN_DIR、値 d:\home\site\ini) を Web アプリに追加するAdd an App Setting to your Web App with the key PHP_INI_SCAN_DIR and value d:\home\site\ini
  4. ini ファイルを extensions.ini と呼ばれる d:\home\site\ini に作成します。Create an ini file in d:\home\site\ini called extensions.ini.
  5. 'php.ini' ファイルで使用するものと同じ構文を使用して、構成設定を extensions.ini ファイルに追加します。Add configuration settings to the extensions.ini file using the same syntax you would use in a php.ini file. たとえば、MongoDB や XDebug 拡張機能を有効にする場合、 extensions.ini ファイルには次のテキストが含まれます。For example, if you wanted to enable the MongoDB and XDebug extensions, your extensions.ini file would contain this text:

     ; Enable Extensions
     extension=d:\home\site\ext\php_mongo.dll
     zend_extension=d:\home\site\ext\php_xdebug.dll
    
  6. 変更内容を読み込むには、Web アプリを再起動します。Restart your Web App to load the changes.

アプリ設定の構成Configure via App Setting

  1. ディレクトリを bin ディレクトリに追加します。Add a bin directory to the root directory.
  2. bin ディレクトリに、.dll 拡張ファイル (php_xdebug.dll など) を配置します。Put .dll extension files in the bin directory (for example, php_xdebug.dll). 拡張機能は、PHP の既定バージョンとの互換性があり、VC9 および非スレッドセーフ (nts) 互換であることを確認してください。Make sure that the extensions are compatible with default version of PHP and are VC9 and non-thread-safe (nts) compatible.
  3. Web アプリをデプロイします。Deploy your web app.
  4. Azure Portal で Web アプリに移動し、[設定] ボタンをクリックします。Browse to your web app in the Azure portal and click on the Settings button.

    [保存]

  5. [設定] ブレードで、[アプリケーションの設定] を選択し、[アプリの設定] セクションまでスクロールします。From the Settings blade, select Application Settings and scroll to the App settings section.
  6. [アプリの設定] セクションで、PHP_EXTENSIONS キーを作成します。In the App settings section, create a PHP_EXTENSIONS key. このキーの値は、Web サイト ルート (bin\your-ext-file) への相対パスになります。The value for this key would be a path relative to website root: bin\your-ext-file.

    [アプリケーション設定] で拡張機能を有効にする

  7. [Web アプリの設定] ブレードの上部にある [保存] ボタンをクリックします。Click the Save button at the top of the Web app settings blade.

    構成設定を保存する

Zend 拡張機能も、PHP_ZENDEXTENSIONS キーを使用することによってサポートされます。Zend extensions are also supported by using a PHP_ZENDEXTENSIONS key. 複数の拡張機能を有効にするには、複数の .dll ファイルをコンマで区切って指定します。To enable multiple extensions, include a comma-separated list of .dll files for the app setting value.

方法: カスタムの PHP ランタイムを使用するHow to: Use a custom PHP runtime

App Service Web Apps では、既定の PHP ランタイムを使用する代わりに、指定された PHP ランタイムを使用して PHP スクリプトを実行することができます。Instead of the default PHP runtime, App Service Web Apps can use a PHP runtime that you provide to execute PHP scripts. 指定するランタイムは、同様に指定する php.ini ファイルによって構成できます。The runtime that you provide can be configured by a php.ini file that you also provide. カスタムの PHP ランタイムを Web Apps で使用するには、次の手順に従います。To use a custom PHP runtime with Web Apps, following these steps.

  1. 非スレッドセーフおよび VC9 または VC11 互換バージョンの Windows 用 PHP を入手します。Obtain a non-thread-safe, VC9 or VC11 compatible version of PHP for Windows. Windows 用 PHP の最近のリリースは、http://windows.php.net/download/ をご覧ください。Recent releases of PHP for Windows can be found here: http://windows.php.net/download/. 以前のリリースは、アーカイブ (http://windows.php.net/downloads/releases/archives/) にあります。Older releases can be found in the archive here: http://windows.php.net/downloads/releases/archives/.
  2. 使用するランタイム用に php.ini ファイルを変更します。Modify the php.ini file for your runtime. システム レベルのみのディレクティブである構成設定は、Web Apps では無視されます Any configuration settings that are system-level-only directives are ignored by Web Apps. (システム レベルのみのディレクティブについては、php.ini ディレクティブの一覧を参照してください)。(For information about system-level-only directives, see List of php.ini directives).
  3. また、PHP ランタイムに拡張機能を追加して、これらを php.ini ファイル内で有効にすることもできます。Optionally, add extensions to your PHP runtime and enable them in the php.ini file.
  4. bin ディレクトリをルート ディレクトリに追加し、その中に、PHP ランタイムが含まれているディレクトリ (bin\php など) を配置します。Add a bin directory to your root directory, and put the directory that contains your PHP runtime in it (for example, bin\php).
  5. Web アプリをデプロイします。Deploy your web app.
  6. Azure Portal で Web アプリに移動し、[設定] ボタンをクリックします。Browse to your web app in the Azure portal and click on the Settings button.

    [保存]

  7. [設定] ブレードで、[アプリケーションの設定] を選択し、[ハンドラー マッピング] セクションまでスクロールします。From the Settings blade, select Application Settings and scroll to the Handler mappings section. [拡張] フィールドに *.php を追加し、php-cgi.exe 実行可能ファイルのパスを追加します。Add *.php to the Extension field and add the path to the php-cgi.exe executable. アプリケーションのルートにある bin ディレクトリに PHP ランタイムを配置した場合、パスは D:\home\site\wwwroot\bin\php\php-cgi.exe になります。If you put your PHP runtime in the bin directory in the root of your application, the path is D:\home\site\wwwroot\bin\php\php-cgi.exe.

    [ハンドラー マッピング] でハンドラーを指定する

  8. [Web アプリの設定] ブレードの上部にある [保存] ボタンをクリックします。Click the Save button at the top of the Web app settings blade.

    構成設定を保存する

方法: Azure で Composer 自動化を有効にするHow to: Enable Composer automation in Azure

既定では、PHP プロジェクトに composer.json があっても、App Service で処理されません。By default, App Service doesn't do anything with composer.json, if you have one in your PHP project. Git デプロイを使用する場合、git push で composer.json の処理を有効にするには、Composer 拡張機能を有効にします。If you use Git deployment, you can enable composer.json processing during git push by enabling the Composer extension.

  1. Azure ポータルの PHP Web アプリのブレードで、[ツール] > [拡張機能] をクリックします。In your PHP web app's blade in the Azure portal, click Tools > Extensions.

    Azure での Composer 自動化を有効にする Azure Portal の設定のブレード

  2. [追加][Composer] の順にクリックします。Click Add, then click Composer.

    Azure で Composer 拡張機能を追加して Composer 自動化を有効にする

  3. [OK] をクリックして法律条項に同意します。Click OK to accept legal terms. もう一度 [OK] をクリックすると、拡張機能が追加されます。Click OK again to add the extension.

    [インストールされている拡張機能] ブレードに Composer 拡張機能が表示されます。The Installed extensions blade shows the Composer extension. Azure で法律条項に同意して Composer 自動化を有効にするAccept legal terms to enable Composer automation in Azure

  4. ここで、ローカル コンピューターのターミナル ウィンドウで、git addgit commitgit push を Web アプリに対して実行します。Now, in a terminal window on your local machine, perform git add, git commit, and git push to your Web App. composer.json で定義されている依存関係が Composer によってインストールされていることがわかります。Notice that Composer is installing dependencies defined in composer.json.

    Azure での Composer 自動化を使用した Git デプロイ

次の手順Next steps

詳細については、 PHP デベロッパー センターを参照してください。For more information, see the PHP Developer Center.

注意

Azure アカウントにサインアップする前に Azure App Service の使用を開始したい場合は、「Azure App Service アプリケーションの作成」を参照してください。そこでは、App Service で有効期間の短いスターター Web アプリをすぐに作成できます。If you want to get started with Azure App Service before signing up for an Azure account, go to Try App Service, where you can immediately create a short-lived starter web app in App Service. このサービスの利用にあたり、クレジット カードは必要ありません。契約も必要ありません。No credit cards required; no commitments.