PHP7.×系が使えないとか、使用しているツールなどの関係でPHP5.6系しか使えない場合、パフォーマンス面に関して諦めたりしていませんか?
皆さん、こんにちは。
業務改善を行うIT・業務コンサルタント、高橋です。
少し前に、『PHP7.2系のパフォーマンス他』という記事ではPHP7.2系のパフォーマンスなどに触れ、『EC-CUBE2.13系のPHP7対応』という記事ではEC-CUBE2.13系のPHP7対応が未だ開発者向けのαバージョン状態であることに触れました。
では、PHP5.6系ではパフォーマンス面を諦めるしかないのでしょうか?
PHP5.6系のパフォーマンスチューニング
PHP5.6系とは言え、まだ諦める必要はありません。
それなりにチューニングしてあげることによってある程度パフォーマンスは向上します。
まず、php.ini(.user.ini)を以下のようにしてみてください。
※ 他のシステムに影響を与えないようにしたい場合、可能な限り『.user.ini』を作成し、そこに記述することで全体への適用を避けられます。ただし、『PHP_INI_SYSTEM』項目はphp.iniでしか変更できません。また、サーバシステム側で制御されている場合には変更できません。
1.『output_buffering』の値を『On』もしくは『4096』としてみてください。
例:output_buffering = On(output_buffering = 4096)
2.『memory_limit』の値をデフォルトの『128M』より大きくしてみてください。
例:memory_limit = 1280M
3.『replath_cache_size』の値をデフォルトの『16K』より大きくしてみてください。
例:replath_cache_size = 4096K
これらはCGI版(FastCGI版)での書き方になりますが、サーバがモジュール版PHPを採用しているのであれば、.htaccessに記述することで対応可能です。
ただし、『PHP_INI_SYSTEM』の場合は.htaccessでの対応はできません。
1の例:php_flag output_buffering On(php_flag output_buffering 4096)
2の例:php_value memory_limit 1280M
3:.htaccessでの対応不可
これ以外に『OPcache』、『APCu』が使え、その設定が変更可能なサーバを使われているのであればまだプラスαがありますので、後日改めてご紹介したいと思います。