Magentoで使うならPHP5.3/5.4よりPHP5.5がおすすめ
この記事は公開から 1年以上が経過しています。現在の最新情報との整合性については弊社では一切の責任を負いかねます。
MagentoはPHPで書かれたプログラムです。動作にはPHPが不可欠で、しかもPHPのパフォーマンスはMagentoの動作速度に直接的な影響を及ぼします。
そのため、Magentoがリリースされた頃から、どのようにPHPをチューニングするかという話題は、アプリケーションのコードをチューニングすることとは別に、話題とされてきました。
このエントリでは、2013年末の段階で、Magentoを動かすために利用できるPHPのバージョンと、最適解について解説します。
Magentoが対応しているPHPのバージョン
Magento Community Edition 1.8 / Enterprise Edition 1.13 が対応しているPHPのバージョンは以下のとおりです。
(Magentoが、というよりもベースにしているZendFrameworkの仕様によるものです)
- PHP5.2.13以上
- PHP5.3.0〜5.3.24(Magento公式より)
- PHP5.4.x(非公式)
- PHP5.5.x(非公式)
Magento標準状態でのテストなので、PHPエクステンションや各ライブラリなどにあるバージョン依存については未調査です。
廃止された関数・機能を使っている場合には、当然エラーが出ます。これはMagentoが悪いのではなく、その開発者に責任があります。
主要LinuxディストリビューションのPHPバージョン
MagentoはWindowsサーバーでも動作できるのですが、基本的にはLinuxサーバーが推奨されています。
Linuxサーバーを使用する際には、ディストリビューションを選ぶ必要がありますが、主要なディストリビューションではPHPのバージョンは以下のようになっています。
ディストリビューション | PHPバージョン |
RedHat EL / CentOS 6.x | 5.3.3 |
Ubuntu Linux 12.04 LTS | 5.3.10 |
Debian 7.2 | 5.4.4 |
Gentoo Linux |
5.5.2 5.4.17 5.3.27 |
Amazon Linux 2013/09 |
5.3.27 5.4.21 |
Oracle Linux 6.5 | 5.3.3 |
このようにディストリビューション間で標準バージョンにはかなり差があります。
どのディストリビューションを使用するのか、は好みや社内標準、利用するホスティングサービスによって変わります。
各PHPバージョンのメンテナンス状況
さて、このようにディストリビューションでばらつきがあるPHPのバージョンですが、PHP側のメンテナンス状況はどうなっているのでしょうか。公式では以下のようになっています。
PHPバージョン | メンテナンス状況 |
5.3.x | メンテナンス終了 (2013/12/12最終リリース) |
5.4.x | メンテナンス中 |
5.5.x | メンテナンス中 |
この状況から考えるに、これから構築・移設をするのであれば、PHP5.4または5.5を選択することになります。
もちろん、各ディストリビューションがメンテナンスをしてくれるものに関しては、基本的に問題無いと考えてよいでしょう。
各PHPバージョンのMagentoとの相性
さて、各PHPバージョンとMagentoの間には相性問題が存在します。
本質的にはPHPとMagentoではなく、PHPのエクステンションが問題なのですが、選択を誤るとトラブルのもとになります。
PHP5.3
PHP5.3とMagentoの相性は悪くありません。安定して動作します。
ただし、PHP5.3がメンテナンス終了の位置づけであることを考えると、相性が良いとは言うものの、新規開発のサイトでは利用しないほうがよいでしょう。
また、サーバーを移転する際にはより新しいバージョンで構成しなおすほうが無難であると思います。
PHP5.4
PHP5.4そのものとMagentoの相性は悪くありません。PHP5.3よりも言語としてのパフォーマンスが高くなっているため、より高いパフォーマンスが期待できます。
ただし、PHP5.4と、PHPのエクステンションであるAPCの相性が非常に悪く、安定度にかけます。
APCを導入しないのであれば、PHP5.4を選択することは現実解として候補に入ります。
その他のバイトコードキャッシュエクステンション(eAccelerator, XCache, ZendOpCache)については未検証なので、コメントできませんが、設定によってはAPCより安定して動作する可能性があります。
なお、Magentoのエクステンションによっては動作バージョンの指定がPHP5.4になっていないものが存在します。
この場合、Magento Connect Manager経由でのインストールが出来ず、ファイルアップロードによるインストールになります。
PHP5.5
最も新しいPHPのバージョンであるPHP5.5は、PHP5.4よりも高いパフォーマンスを発揮します。
標準でバイトコードキャッシュのZendOpCache(旧Zend Optimizer)が内蔵されたことが大きな要因です。
ZendOpCache自体がAPCなどよりも2割程度高速に処理を実行できるので、処理量の大きいMagentoにおいては5割程度高速になる場合も出てきます。
なお、PHP5.5もPHP5.4と同じようにMagentoのエクステンションが非対応である可能性が高いので、注意が必要です。
結論
2013年末の現在においては、新規サイトの構築にPHP5.3を選ぶメリットはありません。
ですが、PHP5.4や5.5の場合はMagentoエクステンションの対応状況がMagento Connectからはわからないために、インストールしようとして躓くケースがありえます。
ですが、それと引き替えにしてもパフォーマンス面での改善は著しいため、PHP5.5を選ぶことが現状では一番パフォーマンスの出るMagentoをベースにしたサイト構築の選択であるといえるでしょう。
なお、弊社製のエクステンションは随時PHP5.5への対応を進めてまいります。
今年度中にはほぼすべてのエクステンションがPHP5.5でご利用いただけるようになるかと思います。