PowerCMS X ブログ
2020-12-14
動作速度は PowerCMS Xの大きなメリットの一つですが、初期状態では高速化のための一部設定が Offになっています。また、PHP拡張モジュールやWebサーバーの設定も動作速度に影響する部分があります。この記事では PowerCMS Xの高速化のための設定についてご紹介します。
最新版の ver.2.4では、PHP 8に対応した他、インデックス・テンプレートの再構築処理の無駄な部分をスキップするようになっています。最新版へのアップグレードをお願いします。尚、このページにある設定を適切に行なった後 PHP 8で再構築速度の計測を行った結果、速度は2倍以上になりました。
PowerCMS Xでは、PHPの「flush」関数を使ってブラウザにレスポンスを返した後にバックグラウンドで各種処理を行います。
Apache Handler の場合 mod_gzip のような Apache 用のサーバーモジュールはそれ自体がバッファリングを行いますので 管理画面においては mod_gzipは無効化してください(最近のサーバーでは気にする必要は稀だと思います)。 また、php-fpmを利用する場合、flushpackets, flushwait の設定に注意してください。
設定の例 :
<Proxy unix:/run/php-fpm/www.sock|fcgi://localhost>
ProxySet flushpackets=on timeout=300
</Proxy>
flush() が意図通りの結果になっているかどうかは、ver.2.2以降の pt-check.php で確認できます。バージョンが ver.2.2未満の場合はアップグレード後に確認ください。
OPcacheの有効化は PowerCMS Xの高速化にとって重要な要素です。無効な場合は有効化してください。
Xdebugが有効な場合、テンプレートエンジンのビルドにかかる時間が大幅に遅くなります。開発フェイズなどで必要な場合を除き、Xdebugは無効化してください。
環境変数 cache_driver に"File"もしくは"Memcached"を指定してください。1台構成の場合は"File"がより高速です。 最新版の config.json-original.json では、"File"が指定されています。
環境変数 query_cache を true に指定すると、データベースへのSQLクエリを File または Memcached にキャッシュするようになり、大幅な高速化が見込めます。
環境変数 rebuild_async を true に指定すると、ポップアップウィンドウでの再構築を並列処理で行うようになります。 並列処理数は、環境変数 async_max_proc で設定します。初期値は「4」です。サーバーのコア数を参考に設定してください。