HHVMはサポート外!PHP5もあと数ヶ月で終了!WordPressはPHP7で動かそう

アプリ開発
HHVMはサポート外!PHP5もあと数ヶ月で終了!WordPressはPHP7で動かそう

弊社では WordPress を使用して、HP作成やECサイトの開発を行っています。

最近、KUSANAGI + Welcart のECサイトの改修を行ったのですが、HHVM が原因でモジュールが動かず、気づくまで四苦八苦しました。

PHP5 に切り替えて事なきを得たのですが、そもそも HHVM や PHP5 でいいんだっけ?サポートがもうすぐ切れるような・・・と素朴なギモンが。

頭を整理するために改めて現状を調べてみましたが、悩ましい問題が山積みでした。

PHPが爆速になるHHVM

爆速

HHVM(HipHop Virtual Machine)とは、Facebook社が開発した実行環境です。PHP と Hack という言語が動きます。

PHP を HHVM 上で動かした方が、PHP標準の実行環境である Zend Engine よりもはるかに速い(文字通り爆速)と話題になりました。

爆速WordPressをウリにしたKUSANAGI

武士

KUSANAGI という、WordPress を動かすための仮想環境があります。

WordPress を速く動かすために最適化を図った環境です。

WordPress を動かすためには、様々なモジュールを用意し、インストール・設定する必要がありますが、それらがオールインワンで入っています。

様々なクラウドサービスであらかじめ KUSANAGI の環境が用意されているので、簡単に WordPress を動かすことができます。

KUSANAGI をダウンロードし、自分のサーバ上で動作させることもできます。

KUSANAGIのモジュール構成

KUSANAGI では、Webサーバ、APサーバ、DBを自由に選択することができます。

Webサーバ

Enginx【デフォルト】
Apache

APサーバ

HHVM【デフォルト】
PHP7
PHP5
Ruby on Rails

DB

MariaDB【デフォルト】
PostgreSQL

ここで注目すべきは、APサーバは HHVM がデフォルトだということです。

KUSANAGI は速さがウリですので当然といえば当然です

HHVM、PHP5、PHP7の状況

チェック

ここで、WordPress が動作するAPサーバの状況を確認してみましょう。

PHP5はすでにサポートが終了している

PHP5は、2017年1月にアクティブサポートが終了しています。2018年いっぱいでセキュリティサポートも終了します。

ストレートに言うと、もう使ってくれるなという状態です。

HHVMとPHP5

HHVM は PHP5 をサポートしていますが、2018年いっぱいで PHP5 サポートを終了します。

PHP5 のセキュリティサポート終了に合わせています

PHP5 ユーザーは、現在 HHVM/Zend Engine のどちらで動かしていたとしても、PHP7 への移行を”早急”に考えなければなりません。

PHP7への移行は進んでいる

各社クラウドサービスが PHP7 対応を比較的早い時期に始めたこともあり、PHP7 への移行・採用は進んでいます。

まだ PHP5 を使っている場合、かなり遅れていると考えたほうがよいでしょう。

ただ、テーマをかなりカスタマイズしていたり、特殊なプラグインを使っている場合、簡単に PHP7 に上げられるとは限らないです。

検証・改修の手間がバカにならないので、ズルズルと延ばしているシステムは多いと思います。本当に悩ましい・・・。

HHVMはHackに最適化される

HHVM はあくまで Hack 用の実行環境です。

Hack と PHP7 に互換性はありません。PHP7 が HHVM で動いたとしてもたまたまです。

HHVM は今後さらに Hack に最適化されます。Hack と PHP7 の言語仕様はどんどん離れていきますので、もはや PHP7 の実行環境とは考えないほうがよいです。

PHP7は速い

PHP は、PHP3 時代から確かに遅かったです。しかしそれはもう昔の話です。PHP7 は PHP5 と比較してかなり速度が改善しました。

もう速度だけで HHVM を採用する理由にはなりません。

WordPressとの関係

原稿用紙

では肝心の WordPress と各APサーバの関係を見てみましょう。

そもそもWordPressはHHVMをサポートしていない

本当に今さらなのですが、WordPress は HHVM を公式にサポートしていません。

HHVM が PHP5 をサポートしているので、WordPress も動くだけです。

HHVM が PHP5 をサポートしていると記載しましたが、厄介なのは完全互換ではないことです。WordPress のテーマやプラグインによっては HHVM で動かないことがあります。HHVM でテストされていないものも多数あるでしょう。

今回我々がハマったモジュールもまさにそれです。HHVM では動作せず、開発元でもテスト対象外でした。

そもそも WordPress がサポートしていないのですから、テストする理由もありません

WordPressは2018年いっぱいでPHP5をサポートから外す(予想)

WordPrress は PHP5 を現時点ではサポートしていますが、2018年いっぱいでサポートから外れる可能性が高いです。

PHP5のセキュリティサポートが切れますから

WordPressを使うならPHP7しか選択肢はない

以上を考えると、WordPress を使うなら PHP7 しか選択肢はありません。

KUSANAGIのデフォルト設定はどうなる?

WordPress の実行環境である以上、正式にサポートされていない HHVM がデフォルト設定となっているのは適当ではないと感じています。過渡期なのかな?

2018年中に HHVM と PHP5 が KUSANAGI のAPサーバの選択肢から消え、結果 PHP7 がデフォルトになるかもと勝手に想像しています。

最後に

我々のケースでは、Welcart プラグインで使用した問題のモジュールが KUSANAGI で提供されている最新の PHP7 に対応していなかったため、PHP5 を使わざるを得ませんでした。

2018年中に問題のモジュールが最新の PHP7 に対応するのか?カスタマイズした WordPress テーマが PHP7 で動くのか?など心配の種は尽きませんが、やれるところから PHP7 への移行を頑張るしかないです。

PHP5 のセキュリティサポート終了に伴い、2018年から2019年にかけて PHP 界隈の動きは慌ただしくなると思います。大きな動きがあったら記事にしますね。