MENUMENU
  • Vol.36
  • WEB
  • Vol.36
  • WEB
  • 2015.12.9

11年ぶりのアップデート!PHP7の導入方法 11年ぶりのアップデート!

2015年12月4日、プログラミング言語のPHP7がリリースししました。 メジャーバージョンが更新されるのは実に11年ぶりとなるPHP7。 Webアプリケーションのサーバーサイドスクリプトの大きなパフォーマンス向上が期待できます。

DEVELOPER

Y.M.

新しくなったphp7のポイント

新しくなったphp7のポイント

新しくなったphp7のポイント

  • メモリ消費などパフォーマンスの向上
  • 処理速度の向上
  • スカラー型宣言などの新機能の実装
  • 5.6時点で廃止予定機能の削除
  • 下位互換のない変更

など

機能について詳しい解説はPHPのリファレンスに情報がありますのでこちらを参照してみてください。

PHP 5.6.x から PHP 7.0.x への移行

Webサイト、Webアプリケーションの大きなパフォーマンス向上が見込まれるPHP7。
早く体験したい!いても立ってもいられなくなったのため、早速サーバーに導入することにしました。
今回使用する環境では開発バージョンRC6をインストールしていたため、それらをいったんアンインストールし、再インストールします。

導入したバージョン
PHP 7.0.0

導入する前のLAMP※1※1LAMPとは、データベースを利用したWebアプリケーションを開発・運用するのに適した、オープンソースソフトウェアの代表的な組み合わせ。OSのLinux、WebサーバーのApache、データベースのMySQL、プログラミングのPerl、PHP、Pythonの頭文字から。構成環境

OS(Linux) CentOS7.1
Webサーバー nginx1.8.0
CGI(PHP) PHP7.0.0RC6
データベース MariaDB 10.1.8

※1 LAMPとは、データベースを利用したWebアプリケーションを開発・運用するのに適した、オープンソースソフトウェアの代表的な組み合わせ。OSのLinux、WebサーバーのApache、データベースのMySQL、プログラミングのPerl、PHP、Pythonの頭文字から。

phpのアンインストール

今回使用する環境には既にPHPがインストールされており、今回はいったんアンインストールしてから再インストールすることにしました。
アンインストールにはyum removeを用います。

# yum remove php

関連する依存パッケージも削除されます。
今回、今までの構築で外部リポジトリを使っい無理矢理デベロッパーバージョンを導入しており、このコマンドで削除することが出なかったため下記コマンドで試しました。

# yum --enablerepo=remi-php70 remove php\*

アンインストールはrpmコマンドで確認することができます。

# rpm -q php

phpのバージョンを確認する方法でも確認してみます。

#php -v

いずれもバージョン情報が出てこなければOKです。
これでphpがアンインストールされていることを確認できました。

PHP7の新規インストール

最新版をインストールするにはまず外部リポジトリを追加します。
最新のREMIリポジトリをダウンロードし、rpmコマンドでリポジトリをインストールします。

# wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# rpm -Uvh remi-release-7.rpm

※rpmコマンドの-Uvhはオプションであり、Uは「アップデート」vは「詳細情報の出力」、hは「インストール状況の表示」となります。
新規インストールでもUオプションを付けても構いません。

yumコマンドでインストールを行います。

# yum -y install --enablerepo=remi-php70 php php-mbstring php-mysqlnd php-fpm

※yumコマンドの中に-yを入れるとインストールの有無の意思確認を行わず、ファイルのダウンロードを終えるとすぐに開始します。

インストールが完了したら確認を行います。

# rpm -q php
# php -v

それぞれを実行したとき、以下のようなコードが表示されればインストール完了です。

# rpm -q php
php-7.0.0-1.el7.remi.x86_64
# php -v
PHP 7.0.0 (cli) (built: Dec 1 2015 17:53:27) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

Webサーバーの動作を兼ねてphpinfoをサーバーにアップロードし、確認します。

サーバーにアップロードして確認している画像

おまけ

PHP6はないの?

PHP7が最新であることがそもそも前提となっている本記事ですが、比較される旧バージョンがPHP5なのにお気づきでしょうか?
PHP6はどこに行ってしまったんだろう?

結論から言うと、PHP6は破棄されたようです。
PHP6の開発では「内部的に文字列を全てUTF-16で実装する」との方針があったようなのですが、実装が複雑になる割に機能改善が見込まれないため、プロジェクト自体が頓挫したようです。
方針を転換して、新しく開発されたためバージョンが6ではなく、7になりました。
内容を要約した記事がありますので詳しくはこちらを参照してみてください。

参考サイト
PHP6開発 UTF-16化を断念、5.3へロールバック(2010/3/17)

マスコットキャラクター

マスコットキャラクター「elePHPant」

PHPのマスコットキャラクターの「elePHPant」です。
あまり有名ではありませんが...
そもそもなぜゾウさんなのでしょう?

それは「PHP」の文字を崩してみるとゾウっぽいという理由からだそう。
フローを見てみると、確かに、そう見えてきます。
下記に参考サイト載せましたのでelePHPantが生まれる変遷を詳しく知りたい方は参照ください。

elePHPant折紙のテンプレートが公開されています。

参考サイト
PHPのマスコットキャラクター「elePHPant」が象である理由
How & Why Did The PHP Mascot Come To Birth? Creator Of The elePHPant Vincent Pontier Reveals The True Story!(英語
Elroubio(「elePHPant」のページ)

まとめ

PHPは当初の予定から少し延期して12月3日にリリースしました。
サーバーへの導入の手順はそこまで難しいものではありません。
大きなパフォーマンス向上が見込めるPHP7ですが、PHP5から仕様変更した部分もあり、本環境への導入は、現在運用しているCGIプログラム、Webアプリケーションの仕様を確認し慎重にアップデートすることをお勧めします。
PHP7と比較されるHHMVは、今までのPHP5系との互換性も高いようです。
PHPベースで処理を高速化したいと考えるときに、PHP7へのアップデートではない1つの選択肢として考慮できると思います。

当環境ではPHP7を導入し、wordpressの動作テストを行いましたが、現状サイトが全く表示されない等の大きな不具合はなく、通常の動作には支障がありません。
ただ、プラグイン等を導入している場合、対応できない場合がありますのでアップデートを待つか、自身でプログラムを修正する必要があります。
当環境でも検証を続けており、何かあればまた別の機会にご紹介しようと思っています。

次回はWebサーバーの環境の構築ってどうやるの?に注目し、現在構築している環境の構成や手順についてご紹介します。

参考: パッケージの削除
参考:rpmコマンドのオプション
参考:PHP7インストールの手順

TAGS

RECENT POSTS

TRENDING

INDEX

MORE FOR YOU

今日もあなたに気づきと発見がありますように

画面を回転してください | 株式会社BOEL

画面を回転してください