[PaaS のみ]{class="badge informative" title="Adobe Commerce on Cloud プロジェクト(Adobeが管理する PaaS インフラストラクチャ)およびオンプレミスプロジェクトにのみ適用されます。"}

PHP設定

このトピックでは、必要なPHP オプションを設定する方法について説明します。

NOTE
サポートされているPHP バージョンは、Adobe Commerce リリースによって異なります。 インストール中のリリースでサポートされている正確なPHP バージョンについては、必要システム構成を参照してください。

クラウド設定ガイダンスについては、Commerce on Cloud Infrastructure ガイドのPHP settingsを参照してください。

PHP プロセス制御

並列モードでインデクサーを実行する前に、PHPでプロセス制御サポート (pcntl)を有効にする必要があります。 PHP ドキュメントの​ インストール ​を参照してください。

PHPがインストールされていることを確認する

PHPは、ほとんどのLinux ディストリビューションにデフォルトでインストールされます。 このトピックでは、既にPHPがインストールされていることを前提としています。 PHPがインストールされているかどうかを確認するには、コマンドラインで次のように入力します。

php -v

PHPがインストールされている場合は、次のようなメッセージが表示されます。

PHP <supported-version> (cli) (built: <build-date>) (NTS)
Copyright (c) The PHP Group
Zend Engine v<matching-version>, Copyright (c) Zend Technologies
    with Zend OPcache v<matching-version>, Copyright (c), by Zend Technologies

PHPがインストールされていない場合(またはアップグレードが必要な場合)は、Linux ディストリビューションの手順に従ってインストールします。

インストールされた拡張機能を確認

Adobe Commerceには、特定のPHP拡張機能が必要です。 次のリストは、Commerceの各エディションに必要な拡張機能を示しています。 リストは、各エディションの最新バージョンを実行しているデプロイメントから自動生成されます。

Adobe Commerceには次の機能が必要です。

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-fileinfo
  • ext-filter
  • ext-ftp
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • ext-reflection
  • ext-simplexml
  • ext-soap
  • ext-sockets
  • ext-sodium
  • ext-spl
  • ext-tokenizer
  • ext-xmlwriter
  • ext-xsl
  • ext-zip
  • ext-zlib
  • lib-libxml

Magento Open Sourceには次の機能が必要です。

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-fileinfo
  • ext-filter
  • ext-ftp
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • ext-reflection
  • ext-simplexml
  • ext-soap
  • ext-sockets
  • ext-sodium
  • ext-tokenizer
  • ext-xmlwriter
  • ext-xsl
  • ext-zip
  • ext-zlib
  • lib-libxml

インストールされている拡張機能を確認するには:

  1. インストール済みモジュールのリスト。

    code language-shell
    php -m
    
  2. 必要な拡張機能がすべてインストールされていることを確認します。

  3. PHPのインストールに使用するのと同じワークフローを使用して、欠落しているモジュールを追加します。

PHP設定の確認

WARNING
PHP ​ バグ 81101の影響を受けるレガシー環境のトラブルシューティングを行う場合は、php.ini ファイルのpcre.jit=0を設定して、CSSが読み込まれない問題を回避してください。
  • PHPのシステムタイムゾーンを設定します。設定しない場合、インストール時に次のようなエラーが表示され、cronなどの時間関連の操作が機能しない場合があります。
PHP Warning:  date(): It is not safe to rely on the system's timezone settings. [more messages follow]
  • PHPのメモリ制限を設定します。

    Adobeでは、次の項目を推奨しています。

    • コードのコンパイルまたは静的アセットのデプロイ,1G
    • デバッグ,2G
    • テスト中、~3-4G
  • PHP realpath_cache_sizeおよびrealpath_cache_ttlの値を推奨設定に増やします。

    code language-conf
    realpath_cache_size=10M
    realpath_cache_ttl=7200
    

    これらの設定を使用すると、PHP プロセスはページ読み込み時にパスを検索するのではなく、ファイルにパスをキャッシュできます。 PHP ドキュメントの​ パフォーマンスチューニング ​を参照してください。

  • Adobe Commerce 2.1以降に必要なopcache.save_commentsを有効にします。

    Adobeでは、パフォーマンス上の理由からPHP OPcacheを有効にすることをお勧めします。 OPcacheは多くのPHP ディストリビューションで有効になっています。

    Adobe Commerce 2.1以降では、コード生成にPHP コードコメントを使用します。

NOTE
インストールおよびアップグレード時の問題を回避するために、Adobeでは、PHP コマンドライン設定とPHP web サーバープラグイン設定の両方に同じPHP設定を適用することを強くお勧めします。 詳しくは、次の節を参照してください。

PHP設定ファイルの検索

この節では、必要な設定を更新するために必要な設定ファイルの検索方法について説明します。

php.ini設定ファイルを検索

Web サーバー設定を検索するには、web ブラウザーでphpinfo.php ファイル ​を実行し、次のようにLoaded Configuration Fileを探します。

PHP情報ページ

PHP コマンドライン設定を見つけるには、次のように入力します

php --ini | grep "Loaded Configuration File"
NOTE
php.ini ファイルが1つしかない場合は、そのファイルを変更します。 2つのphp.ini ファイルがある場合は、両方 ファイルを変更します。 これを怠ると、予期しないパフォーマンスが発生する可能性があります。

OPcache構成設定の検索

PHP OPcacheの設定は通常、php.iniまたはopcache.iniにあります。 場所は、オペレーティングシステムとPHPのバージョンによって異なる場合があります。 OPcache設定ファイルには、opcache セクションまたはopcache.enableのような設定が含まれている場合があります。

次のガイドラインを使用して検索します。

  • Apache web サーバー:

    Apacheを使用するUbuntuの場合、OPcache設定は通常、php.ini ファイルにあります。

    Apacheまたはnginxを使用するCentOSの場合、OPcache設定は通常/etc/php.d/opcache.iniにあります

    そうでない場合は、次のコマンドを使用して検索します。

    code language-shell
    sudo find / -name 'opcache.ini'
    
  • nginx web サーバーとPHP-FPM: /etc/php/<supported-php-version>/fpm/php.ini

opcache.iniが複数ある場合は、それらをすべて変更します。

PHP オプションの設定方法

PHP オプションを設定するには:

  1. テキストエディターでphp.iniを開きます。

  2. 使用可能な​ タイムゾーン設定で、サーバーのタイムゾーンを探します

  3. 次の設定を探し、必要に応じてコメントを解除します。

    code language-conf
    date.timezone =
    
  4. 手順2で見つけたタイムゾーン設定を追加します。

  5. memory_limitの値を、このセクションの先頭で推奨されている値のいずれかに変更します。

    以下に例を挙げます。

    code language-conf
    memory_limit=2G
    
  6. 次の値に一致するようにrealpath_cache設定を追加または更新します。

    code language-conf
    ;
    ; Increase realpath cache size
    ;
    realpath_cache_size = 10M
    
    ;
    ; Increase realpath cache ttl
    ;
    realpath_cache_ttl = 7200
    
  7. 変更を保存し、テキストエディターを終了します。

  8. 他のphp.iniを開き(それらが異なる場合)、同じ変更を加えます。

OPcache オプションの設定

opcache.ini オプションを設定するには:

  1. テキストエディターでOPcache設定ファイルを開きます。

    • opcache.ini (CentOS)
    • php.ini (Ubuntu)
    • /etc/php/<supported-php-version>/fpm/php.ini (nginx web サーバー(CentOSまたはUbuntu))
  2. opcache.save_commentsを探し、必要に応じてコメントを解除します。

  3. 値が1に設定されていることを確認してください。

  4. 変更を保存し、テキストエディターを終了します。

  5. Web サーバーを再起動します。

    • Apache、Ubuntu: service apache2 restart
    • Apache、CentOS: service httpd restart
    • nginx、Ubuntu、CentOS: service nginx restart

トラブルシューティング

PHPの問題のトラブルシューティングについては、次のAdobe Commerce サポート記事を参照してください。

recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995