PHP 設定

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

NOTE
最新バージョンのAdobe Commerceを使用するには、最低でも PHP 8.1 が必要です。参照: 必要システム構成 (サポートされている PHP の全バージョン)

クラウド設定のガイダンスについては、を参照してください PHP 設定 が含まれる クラウドインフラストラクチャー上の Commerce ガイド。

PHP プロセスコントロール

インデクサーを並列モードで実行する前に、プロセス制御のサポート(pcntl)を使用します。 参照: インストール PHP のドキュメントに書かれています。

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

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

php -v

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

PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.14, 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-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-sockets
  • ext-sodium
  • ext-spl
  • ext-tokenizer
  • ext-xmlwriter
  • ext-xsl
  • ext-zip
  • ext-zlib
  • lib-libxml

Adobe Commerce向け B2B には以下が必要です。

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-fileinfo
  • ext-filter
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • 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-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-sockets
  • ext-sodium
  • ext-tokenizer
  • ext-xmlwriter
  • ext-xsl
  • ext-zip
  • ext-zlib
  • lib-libxml

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

  1. インストールされているモジュールのリスト。

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

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

PHP の設定を確認する

WARNING
PHP 7.4.20 を使用している場合、次のように設定します。 pcre.jit=0 が含まれる php.ini ファイル。 これは PHP に関連します バグ これにより、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 のドキュメントに書かれています。

  • Enable (有効) opcache.save_comments(Adobe Commerce 2.1 以降で必要)

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

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

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

PHP 設定ファイルの検索

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

検索 php.ini 設定ファイル

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

PHP 情報ページ

PHP コマンドライン設定を探すには、次のように入力します。

php --ini | grep "Loaded Configuration File"
NOTE
1 つしかない場合 php.ini ファイル、そのファイルを変更します。 次の 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-bash
    sudo find / -name 'opcache.ini'
    
  • nginx web サーバと PHP-FPM: /etc/php/8.1/fpm/php.ini

2 つ以上の場合 opcache.iniを選択し、それらをすべて変更します。

PHP オプションの設定方法

PHP オプションを設定するには、次の手順に従います。

  1. を開く php.ini テキストエディター。

  2. でサーバーのタイムゾーンを見つけます タイムゾーン設定

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

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

  5. の値を変更します memory_limit を、この節の最初に推奨する値の 1 つに設定します。

    以下に例を挙げます。

    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. もう 1 つを開きます php.ini (異なる場合)同じ変更を加えます。

OPcache オプションの設定

を設定 opcache.ini オプション:

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

    • opcache.ini (CentOS)
    • php.ini (Ubuntu)
    • /etc/php/8.1/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