PHP設定
このトピックでは、必要な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-bcmathext-ctypeext-curlext-domext-fileinfoext-filterext-ftpext-gdext-hashext-iconvext-intlext-jsonext-libxmlext-mbstringext-opensslext-pcreext-pdo_mysqlext-reflectionext-simplexmlext-soapext-socketsext-sodiumext-splext-tokenizerext-xmlwriterext-xslext-zipext-zliblib-libxml
Magento Open Sourceには次の機能が必要です。
ext-bcmathext-ctypeext-curlext-domext-fileinfoext-filterext-ftpext-gdext-hashext-iconvext-intlext-jsonext-libxmlext-mbstringext-opensslext-pcreext-pdo_mysqlext-reflectionext-simplexmlext-soapext-socketsext-sodiumext-tokenizerext-xmlwriterext-xslext-zipext-zliblib-libxml
インストールされている拡張機能を確認するには:
-
インストール済みモジュールのリスト。
code language-shell 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つしかない場合は、そのファイルを変更します。 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 オプションを設定するには:
-
テキストエディターで
php.iniを開きます。 -
使用可能な タイムゾーン設定で、サーバーのタイムゾーンを探します
-
次の設定を探し、必要に応じてコメントを解除します。
code language-conf date.timezone = -
手順2で見つけたタイムゾーン設定を追加します。
-
memory_limitの値を、このセクションの先頭で推奨されている値のいずれかに変更します。以下に例を挙げます。
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/<supported-php-version>/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 サポート記事を参照してください。