php7とWordPress

phpの最新バージョン、それも11年振りのメジャーアップデートとなる「php7」が昨年12月にリリースされました。
私が今の会社に入社した2001年1月はphp3からphp4の過渡期で、会社でもPerlではなくphp4でアプリケーション開発を手探りしているような状況だったのを今でも鮮明に覚えています。なにせ入社早々、そのphp4アプリケーション開発のために、Intelのベアボーン1Uサーバーを買ってLAMP(Linux + Apache + MySQL + PHP)環境を構築する担当になったのですから。まだ社内にはSPARC Station + Solarisという商用Unix環境がバリバリ幅を聞かせていた状況下で、まさに黒船がやってきた!のような感じでした(笑)。

さて、php7の公式ロゴを探してアイキャッチ画像として使おうと思いましたが見当たりませんでした。phpの公式ロゴはあるようですが、特定バージョンの公式ロゴはないようです。そんなこともあり、googleで"php7"というキーワードの画像検索をした結果をアイキャッチ画像にしてみました。

2016年はphp5からphp7の過渡期になると思われます。順次php5系のサポートが打ち切られるのは既に規定路線で、スケジュールは決まっています。
会社で(というよりも個人的に興味があったので)php7環境下でWordPressが動作するか検証してみました。結果はWordPress 3.9系以降であれば概ね動作することがわかりました(WordPress 3.8以前は本体でmysql関数を使用しているので動作しません。mysql関数をmysqli関数に書き換えれば動作するのでしょうが、費やす労力を考慮すればよほどの事情が無い限りは素直にバージョンアップをした方が良いはずです)。「概ね」と書いたのは、WordPress本体は動くけれども、他所のテーマやプラグインを導入した場合はその限りではないということです。実際、テーマやプラグインの中でphp7から使えなくなったereg関数を使用していると正常に動作しません。また構文チェックも厳しくなっていて、break命令を使う必要が無い箇所でbreak命令を使っているとFatal errorで正常に動作しませんでした。今までは無視してくれていた潜在バグが顕在化するということです。逆にそのあたりのデバッグをきっちりとすれば動作します。事前検証せずに本番環境でえい!→やあ!と切り替えると炎上はまぬがれないかもしれませんが。

個人でレンタルしているサーバーは年末にやっと5.6系に対応したばかりで、このサイトもphp5.6系で動作するように設定を切り替えたばかりです。
php7の最大のメリットは速度向上だと思いますが、レンタルサーバーの状況が上記のとおりなので、その恩恵にあずかれるのはまだまだ先になりそうです。