PHP 設定
このトピックでは、必要な PHP オプションを設定する方法について説明します。
クラウド設定のガイダンスについては、Cloud Infrastructure でのCommerce🔗 ガイドの PHP 設定 を参照してください。
PHP プロセスコントロール
インデクサーを並列モードで実行する前に、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
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
インストールされている拡張機能を確認するには:
-
インストールされているモジュールのリスト。
code language-bash php -m
-
必要な拡張機能がすべてインストールされていることを確認します。
-
PHP のインストールに使用するのと同じワークフローを使用して、不足しているモジュールを追加します。
PHP の設定を確認する
- 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 コードコメントを使用します。
PHP 設定ファイルの検索
この節では、必要な設定を更新するために必要な設定ファイルを見つける方法について説明します。
設定ファイル php.ini
検索
Web サーバー設定を見つけるには、web ブラウザーで phpinfo.php
ファイルを実行し次のように Loaded Configuration File
を探します。
PHP コマンドライン設定を探すには、次のように入力します。
php --ini | grep "Loaded Configuration File"
php.ini
ファイルが 1 つだけの場合は、そのファイルを変更します。 php.ini
ファイルが 2 つある場合は、両方 ファイルを変更します。 そうしないと、予期しないパフォーマンスが発生する可能性があります。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'
-
php-FPM を使用する nginx web サーバ:
/etc/php/8.1/fpm/php.ini
複数の opcache.ini
がある場合は、それらをすべて変更します。
PHP オプションの設定方法
PHP オプションを設定するには、次の手順に従います。
-
php.ini
をテキストエディターで開きます。 -
利用可能な タイムゾーン設定でサーバーのタイムゾーンを見つけます
-
次の設定を探し、必要に応じてコメントを解除します。
code language-conf date.timezone =
-
手順 2 で確認したタイムゾーン設定を追加します。
-
memory_limit
の値を、このセクションの先頭で推奨されている値の 1 つに変更します。以下に例を挙げます。
code language-conf memory_limit=2G
-
次の値に一致するように
realpath_cache
設定を追加または更新します。code language-conf ; ; Increase realpath cache size ; realpath_cache_size = 10M ; ; Increase realpath cache ttl ; realpath_cache_ttl = 7200
-
変更を保存し、テキストエディターを終了します。
-
他の
php.ini
を開き(異なる場合)、同じ変更を加えます。
OPcache オプションの設定
opcache.ini
のオプションを設定するには:
-
テキストエディターで OPcache 設定ファイルを開きます。
opcache.ini
(CentOS)php.ini
(Ubuntu)/etc/php/8.1/fpm/php.ini
(nginx web サーバ(CentOS または Ubuntu))
-
opcache.save_comments
を見つけ、必要に応じてコメントを解除します。 -
その値が
1
に設定されていることを確認します。 -
変更を保存し、テキストエディターを終了します。
-
Web サーバーを再起動します。
- Apache、Ubuntu:
service apache2 restart
- Apache、CentOS:
service httpd restart
- nginx、Ubuntu、CentOS:
service nginx restart
- Apache、Ubuntu:
トラブルシューティング
PHP の問題のトラブルシューティングについては、以下のAdobe Commerce サポートの記事を参照してください。