AccuWebHostingはPHP7ホスティングを導入します
公開: 2015-12-07PHP開発チームは、WebMasterの長い待ち時間に終止符を打ち、PHP 7がすぐに利用可能になることを発表しました。世界で最も人気のあるスクリプト言語(Webの81%に電力を供給する)の次のバージョンであるPHP 7が、2015年12月3日にようやくリリースされました。
完了までに8年、ロールアウトが数週間遅れた後、PHP7がついにダウンロードできるようになりました。 Windowsユーザーは、ここからPHP7Windowsバイナリをダウンロードできます。 最新バージョンのPHPでは、多くの変更が導入されているため、PHP 7は、PHP 5.xコードとシームレスに連携するはずですが、既存のPHP4レガシーコードとの下位互換性はありません。 PHP 7で導入された変更を確認するには、変更ログを参照してください。
PHP7の主な利点
PHP 7の構文変更は最小限であり、パフォーマンスの向上に重点が置かれています。 過去数か月の間に、PHP 7でいくつかのベンチマークが実行され、PHP 7はその前身(PHP 5.x)よりもほぼ200%高速であると主張されました。
PHP 7は、最新のエンジン、つまりPHPNG(PHP Next Generation)で実行され、FacebookのHHVMなどのインタープリターと競合します。 HHVMは何年もの間PHPを上回っています。これにより、PHP7開発者チームは能力を向上させることができました。 PHPNGのおかげで、PHP7コアエンジンはCPUとメモリ用にさらに最適化されました。
PHP 7で実行されたベンチマークに基づくと、PHPNGエンジンは、最新の5.6リリースと比較してメモリとCPUの使用率を半分にします。
ここでは、PHP7にアップグレードしたときに利用できる最もエキサイティングな新機能のいくつかについて説明します。
新しいオペレーター
PHP 7には、宇宙船(または複合比較演算子)とnull合体演算子の2つの新しい演算子が付属しています。
宇宙船の演算子(<=>)は、連鎖比較をより簡潔にするために使用されます。 例えば:
$ var1 <=> $ var2
この式は次のように評価されます。
-1 $var1が$var2より小さい場合、 $var1が$var2と等しい場合は0、および $var1が$var2より大きい場合は1、
これは基本的に次の式のショートカットです。
($ var1 <$ var2)? -1:(($ var1> $ var2)?1:0)
null合体演算子(??)は、一般的なユースケースのショートカットとして使用できます。 たとえば、PHP 5.xでは、次のようにします。
$ var1 = isset($ var2)? $ var2:"デフォルト";
PHP 7では、null合体演算子を使用して同じ式を次のように記述できます。
$ var1 = $ var2 ?? "デフォルト";
スカラータイプのヒント
スカラー型のヒントは、最新のPHPバージョンの最も印象的な機能の1つです。 関数とメソッドの型ヒントとして、整数、浮動小数点数、文字列、およびブール値を使用できます。 つまり、float値を整数パラメーターに渡すと、スカラー型ヒントはエラーや警告を生成せずに整数に強制します。 ただし、厳密モードが有効になっている場合、引数として間違った型が渡されるとエラーがスローされます。
<?php 関数double(int $ value) {{ 2 *$valueを返します。 } $ var = double( "8"); var_dump($ var);
strictモードが無効になっている場合、上記のコードはエラーを生成しません。 さらに、引数として渡された文字列「8」は、double関数内で強制的に整数になります。 上記のコードの最初の行にディレクティブdeclare(strict_types = 1)を含めてstrictモードを有効にすると、double関数に渡すことができるのは整数のみになります。
<?php 宣言(strict_types = 1); 関数double(int $ value) {{ 2 *$valueを返します。 } $ var = double( "8"); var_dump($ var);
strictモードが有効になっている場合、上記のコードは致命的なエラーを生成します。
リターンタイプのヒント
リターンタイプのヒントを使用すると、メソッドと関数のリターンタイプを定義できます。 強制および厳密モードに関しては、スカラー型ヒントと同じように動作します。
<?php 関数a():bool {{ 1を返します。 } var_dump(a());
上記のコードを実行すると、戻り値はエラーや警告なしに自動的にboolに変換されます。 ストリクトモードを有効にすると、致命的なエラーがスローされます。
HHVMとPHP7
HHVMは、Facebook開発者がPHPアプリケーションを実行するために作成した仮想マシンです。 2008年、Facebookチームは、PHPスクリプトをC ++に変換して、Webサーバー上でコンパイルおよび実行できるようにするツールを開発しました。 主な目標は、サーバーリソースの使用率を下げ、サーバーの実際の容量の5〜6倍のトラフィックに対応することでした。 これらの課題を克服するために、FacebookはHipHop Virtual Machine(HHVM)を開発しました。 この変更により、サーバー容量が増加し、Webトラフィックの500〜600%の増加に対応できるようになりました。
この時点で、「HHVMがこれほど高速になる理由は何ですか?」と尋ねることができます。
PHPコードをC++にコンパイルする代わりに、HHVMはJust-In-Time(JIT)コンパイルを利用してPHPコードを中間バイトコードに変換しました。 このバイトコードは、さらにx64マシンコードに変換されます。 これで、JITコンパイラが登場し、実行時に翻訳を動的に実行して、可能なすべての最適化を可能にします。 その結果、PHPアプリケーションのパフォーマンスが劇的に向上します。
PHP 7またはPHPNGは、HipHopVirtualMachineに対する真の競争相手およびコミュニティの反応です。 HHVMは以前のバージョンのPHPを明らかに上回っていますが、最近のベンチマークテストでは、特定の状況でPHP7がHHVMよりもわずかに高速であることが示されています。 WordPress、Magento、Drupalなどの人気のあるアプリでZENDが実施したベンチマークテストの結果を見てみましょう。
MagentoHHVM3.7とPHP7
下のグラフから推測すると、同じハードウェアで最大3倍のMagentoカタログサーバーリクエストを作成でき、PHP 7は30%少ないメモリを使用します。
出典:www.zend.com
WordPressHHVM3.7とPHP7
示されている結果によると、HHVM3.7とPHP7の間に大きな違いはありません。最も興味深い事実は、PHP7がPHP5.6と比較してサーバー実行の25%しか使用していないことです。 したがって、同じ容量のサーバーは、より多くのユーザーにサービスを提供できるようになります。
出典:www.zend.com
DrupalHHVM3.7とPHP7
このグラフは、PHP 7がHVVMよりも大幅に高速であり、興味深いことに、Drupal8はPHP5.6と比較してPHP7で72%高速に実行されることを示しています。
出典:www.zend.com
その他のベンチマーク
PHPAustraliaでRasmusLerdorfが実行したベンチマークを参照することもできます。 スライドをナビゲートするには、矢印キーを使用します。
何をすればいいですか?
PHP 7またはPHPNGより前のバージョンでは、HHVMはすべてのPHPバージョンでPHP-Zendパッケージよりも確かに高速です。 PHP 7は、ほとんどのベンチマークで、ほとんどのスクリプトでHHVMに対して優れたパフォーマンスを示しています。
Etsyやウィキメディア財団のような大規模なウェブサイトはHHVMを利用していますが、PHP-ZendパッケージからPHP-HHVMパッケージに完全に切り替えるには6か月以上かかりました。 言い換えれば、PHP-ZendパッケージからPHP-HHVMパッケージへの切り替えは一朝一夕の作業ではありません。 小規模なWebサイト所有者の場合、より多くの専門知識を必要とするHHVMへの複雑な移行と比較して、PHP7への移行ははるかに簡単です。
AccuWebHostingによるPHP7ホスティング
AccuWebHostingがPHP7ホスティングを提供する最初のWebホストの1つであることは当然のことです。 私たちの熱心なテストチームは、PHPの最新バージョンを待ち望んでいました。 PHP 7のリリースの翌日、チームはWebホスティングインフラストラクチャでPHP7をテストする機会を得ました。
Linux共有SSDホスティングとWordPressホスティングプランの両方でPHP7サポートを提供できることを誇りに思います。
AccuWebHostingは、Linux共有/リセラープランでPHP構成プラグインを提供し、顧客がディレクトリとドメインにPHP7バージョンを設定できるようにします。 Linux共有SSDホスティングおよびWordPressホスティングのお客様は、次の記事を使用して、古いPHPバージョンから7に変更できます。
cPanelからPHPバージョンを変更する
専用サーバーでのPHP7のサポート
- Windows専用サーバーでは、AccuWebHostingチームがPHP7をオンデマンドでインストールして構成します。
- 現在、cPanel /WHMはPHP7をサポートしていないため、CloudLinuxオペレーティングシステムを使用しない限り、cPanel専用サーバーでPHP7を使用することはできません。 cPanel /WHMがPHP7のサポートを開始すると、WHMEasyApacheを介して追加できます。
- Linux専用サーバー(cPanelなし)のお客様は、要件に応じてPHP7をインストールおよび構成できます。
WindowsVPSでのPHP7のサポート
すべてのWindowsVPSプランはPHP7をサポートしています。WindowsVPSのお客様は、PHP7をインストールして構成するためのチケットを提出する必要があります。
LinuxVPSでのPHP7のサポート
Linux VPS(cPanelなし)のお客様は、要件に応じてPHP7をインストールおよび構成できます。 cPanelはPHP7をサポートしていないため、cPanel VPSのお客様は、cPanelがPHP7のサポートを開始するまで待つ必要があります。 cPanelがPHP7のサポートを開始すると、EasyApacheを介して追加できます。