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(非公式)
PHP5.4とPHP5.5については、弊社で動作チェックを行った結果に基づくものです。
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でご利用いただけるようになるかと思います。