PHPは、Web上で最も人気のあるスクリプト言語の一つです。W3Techsによると、PHPはサーバー側のプログラミング言語を使用するすべてのウェブサイトの78%以上で使用されています。つまり、閲覧するウェブサイトのほぼ8割りがPHPを利用しています。PHPが死んでいるとは言えないことに違いありません。もちろん、WordPress全体がPHP上に構築されており、PHPがWordPressのエコシステムにつながっているため、非常に重要な役割を果たしています。

phpinfo ページを作成すると、PHPバージョン間の切り替えが簡単にできます。

最近直面しているジレンマは、多くのビジネス、開発者、そしてホスティング会社が最新のPHPバージョンのサポートが遅れているということです。下記の分析データの中には驚くべき内容が多いです。今日は、セキュリティ上の理由だけでなく、パフォーマンスを改善しサポートを向上させるためにも、PHPの最新版を使用することが非常に重要である理由をいくつか説明します。

PHPの旧バージョン

どのソフトウェアもそうですが、PHPにも継続的改善ができるようにリリースライフサイクルがあります。PHPの各メジャーリリースは通常、リリース後2年間は完全にサポートされています。その間、バグやセキュリティ問題は定期的に修正されます。

WordPressのサポートのあるPHPバージョン

WordPressのサポートのあるPHPバージョン

PHP 5.6、7.0と7.1のサポート終了

サポートが終了すると、セキュリティサポートがなくなり、修正されていないセキュリティの脆弱性にさらされるようになります。

WordPressの正式分析ページによると、本稿執筆の時点では、WordPressユーザーの35%以上がまだPHPの5.6以下のバージョンを使用しています。これをPHP 7.0と7.1と組み合わせると、ユーザーの64%が2019年12月にサポート終了となったPHPバージョンを使用しています。

WordPress以外のウェブサイトのデータも確認すると、さらに恐ろしい結果となります。W3Techsによると、PHP5はPHPを使用するすべてのウェブサイトの55.8%に使用されています

64% of WordPress users are currently using PHP versions that are no longer supported! 😮Click to Tweet

これはセキュリティの観点からだけでなく、PHP 7のパフォーマンス強化を利用していないWordPressウェブサイトが多いからも悪いことです。

WordPressのPHPバージョンの分析データ

WordPressのPHPバージョンの分析データ

新しいバージョンの採用が遅い理由について

新しいバージョンが早く採用されない主な理由は次のとおりです。

しかし、古くて、サポートされていない、WordPressウェブサイトを遅くするPHPバージョンを使用することはこれでもあり得ないことです。一方、ある程度の進捗が確認できています。 Private Packagistの共同創設者であるJordi Boggianoは、毎年PHP使用についての分析データのレポートを作成しています。以下のグラフで分かるように、ある程度の進捗があります。データーはもちろんComposerインストールのほんの一部のサンプルですが、それでも興味深いいです。

PHP使用の分析

PHP使用の分析(作成:Jordi Boggiano)

PHPのバージョンを更新する理由について

以下の理由を確認し、更新未実施の場合は必ず更新することをご検討ください。

1. セキュリティ

PHPを更新する最も重要な理由の一つは、完全にサポートされ、セキュリティの脆弱性が定期的に修正されているバージョンを使用することです。PHP 5.4は2015年以降、PHP 5.5は2016年以降修正されていません。ただし、オペレーティングシステムベンダーの中には、自分が提供するPHPの旧バージョンを更新しているベンダーもあります。

CVE Detailsによると、2016年にはPHPのセキュリティ脆弱性は100件以上も報告され、現在までの最悪の年の一つでした。これらには、DoS、コード実行、オーバーフロー、メモリ破損、XSS、ディレクトリトラバーサル、バイパス、および情報の取得などが含まれます。2017年は2000年以来の3番目に悪い年で、40件以上の脆弱性がありました。

年別のPHPセキュリティ脆弱性

年別のPHPセキュリティ脆弱性

 

PHP自信も「最新版を維持する」ことについて次のとおり述べています:

PHP は、他の大規模なシステムと同様に、セキュリティを確保しつつ 改良されています。新バージョンにはしばしば大規模あるいは小規模な 変更が含まれています。その内容は、セキュリティの機能追加であったり セキュリティ上の問題・設定の不備・その他システム全体のセキュリティや 安定性にかかわる問題の修正であったりします。他のシステムレベルのスクリプト言語やプログラムと同様に、最善の アプローチは、頻繁に更新し、最新のバージョンとその変更を 注視し続けることです。PHP、最新版を維持する

2. パフォーマンス

PHP 7.2PHP 7.37.4のリリースにより、パフォーマンスが大幅に改善しました。影響度は非常に大きい為、WordPressウェブサイトのその他の細かい最適化よりも優先すべきです。以下のベンチマークはPHP 7のこれまでのバージョンに対する大幅なパフォーマンス向上を示しています。PHP 7をPHP 5.6と比較するとレイテンシがほぼ半分で、1秒あたり2倍のリクエストが実行されることが分かります。

php5.6対php7

PHP Fluent TalkのRasmus LerdorfのPHPベンチマーク

当社も独自のPHPベンチマークを作成しました。上記のベンチマークと同様に、PHP 7.3ではPHP 5.6と比較して1秒間に約3倍のトランザクション(リクエスト)が実行できることがわかりました。PHP 7.3はまたPHP 7.2よりも平均9%高速です。

WordPress 5.0のPHPベンチマーク

WordPress 5.0のPHPベンチマーク

Christian VighもPHPのパフォーマンス比較を公開し、PHP 5.2がPHP 7よりも400%遅いことが判明しました。

純粋なCPUベンチマーク結果の比較

純粋なCPUベンチマーク結果の比較

3. サポート

サポートも、PHP最新版を使用する理由の一つです。プラグインとテーマの開発者は、旧バージョンのサポートを拡張するだけの場合が多いです。理由は時間的制約と、互換性を試験する時間がないことです。 古いバージョンを使用すると、ウェブサイトがどうしても破壊するでしょう。WordPressのフォーラムでその実例が多いです。古いPHPバージョンと、そのバージョンの特定の関数の処理方法のせいで発生するエラーは例えば次のものがあります:

Parse error: syntax error, unexpected '' (T_VARIABLE), expecting function (T_FUNCTION) in /pub/file.php on line xxx

WordPressフォーラムで「予期しないT_Function」を検索すると、2,000以上のスレッドが返され、その中に過去数日以内のものが多いです。以下はPHPの古いバージョンを実行しているせいで発生した最近の例です:

これらのスレッドの多くは、PHPの古いバージョンを使用しているために開かれています。しかし、PHP 7との互換性の問題のために開かれているスレッドもそうです。これで、WordPress開発コミュニティがまだ新しいPHPバージョンに追いついていないことが分かります。

4. 開発者向けの新機能

PHP 5.2と比較するとPHP 7.4には新機能が多数追加された為、WordPress開発者の多くは、可能であればPHPのより新しいバージョンを使用したがっているでしょう。PHP 7および7.3での変更点は次のとおりです。

古いバージョンのものをサポートするのは楽しいことではありません。残念なことに、多くの開発者は、広範囲のバージョンをサポートしなければなりません。

ご利用のホスティング会社がPHPの最新版をサポートしているか確認する

時間がかかりましたが、WordPress.orgの要件はPHP 7.3以上を推奨するようになりました。

Yoastはつい最近、「ご利用のホスティング会社を改善しよう」という素晴らしい記事を発表しました。この記事では、Joost de Valkは「本当の問題はホスティング会社が新しいバージョンを採用していないことまたは採用してもお客様をアップグレードするように促さないことである」と説明しています。そこでYoastが登場します。Yoast SEO 4.5以降、PHP 5.2を使用しているウェブサイトのWordPressダッシュボードに通知が表示されるようになります。 この通知は大きく、醜く、見逃せることのできないものになるようです。

PHP 7 is the future (and boy is it nice and fast).🚀 -- Joost de Valk via @yoast @kinstaClick to Tweet

素晴らしい対策です!Kinstaは、PHP 7.2、7.3も7.4も安定版リリース以来サポートしています。

実は、Kinstaの新しいWordPressインストールのデフォルト設定はPHP 7.3です。そしてPHP 7.2が当社の環境で許される最小バージョンです。

KinstaのPHPの旧バージョンのサポート終了についてのスケジュール

2019年12月9日に、当社のMyKinstaダッシュボードからPHPバージョン5.6、7.0、および7.1を削除しました上記のバージョンをご利用のウェブサイトでは、少なくともPHP 7.2にアップグレードする必要があります。

2019年10月1日に、Kinstaのすべてのお客様を対象に本番環境のPHP 5.6、7.0、および7.1への切り替えを無効にします。本番環境ではPHP 7.2または7.3に切り替えることはそれ以降もできますが、PHP 5.6、7.0、または7.1に戻ることはできません。

この変更は、既存のウェブサイトだけでなく、2019年10月1日以降に作成されたウェブサイトにも適用されます。試験をし続けられる環境を確保する為に、ステージング環境は10月1日の変更の対象とはなりませんでした。

PHP 5.6、7.0、または7.1のウェブサイトは、2019年12月9日に自動的にPHP 7.2にアップグレードされます

ご不便をおかけして申し訳ありません。私たちは、本業界の最も速やくて安全な環境を運営することを誇りに思っております。そのためにお客様のすべてのウェブサイトがセキュリティを頻繁に更新されるテクノロジを使用していることを確保する必要があります。

当社のWordPressウェブサイトのPHPバージョンを安全に更新する手順についてのガイドも是非ご確認ください。

現在のPHPのバージョンを確認する

ご利用のPHPバージョンがご存じでない方は下記の手順をご確認ください。

1. Pingdomを使用してPHPのバージョンを確認する

ご利用のPHPバージョンを確認する最もしやすい方法の一つは、Pingdom及びGoogle Chrome Devtoolsなどのツールを使用することです。最初のHTTPリクエストヘッダにはバージョンが表示されているはずです。

Pingdomを使用してPHPのバージョンを確認する

Pingdomを使用してPHPのバージョンを確認する

結果が出るかは、ホスティング会社がX-Powered-Byヘッダーの値を変更していないことによります。セキュリティ上の懸念から、これを取り除く会社もあります。ヘッダーが取り除かれた場合には、PHPのバージョンが表示されないことがあります。その場合には以下のいずれかの手順に従ってください。または、ホスティング会社に質問することもできます。

2. WordPressを使用してPHPのバージョンを確認する

WordPress 5.0以上をご利用の場合は、「サイトヘルス」ツールでもPHPバージョンを確認できます。

WordPressのサイトヘルスツールを使用してPHPのバージョンを確認する

WordPressのサイトヘルスツールを使用してPHPのバージョンを確認する

2. ファイルを使用してPHPのバージョンを確認する

ご利用のサーバーにFTP経由でファイルをアップロードすることによりもPHPバージョンを確認することができます。

ダウンタイムまたはWordPressの異常に悩んでいますか。Kinstaは時間を節約するために設計されたホスティングソリューションです!当社のフィーチャーをご確認ください。

ステップ1

phpinfo.phpという名前の空のファイルを作成します。ファイルに次の内容を貼り付けます:

<?php
echo 'Current PHP version: ' . phpversion();
?>

ステップ2

WordPressウェブサイトのルートにファイルをアップロードします。

phpinfo.phpファイルをアップロードする

phpinfo.phpファイルをアップロードする

ステップ3

次にファイルの場所であるdomain.com/phpinfo.phpにアクセスします。そこで現在のPHPバージョンの情報が表示されます。

PHPのバージョンをブラウザで確認する

PHPのバージョンをブラウザで確認する

情報技術に精通していない方または予算が限られている方ができる対策

古いプラグイン及びテーマ等のせいで、新しいPHPバージョンと互換性のないWordPressウェブサイトは多いです。技術に精通していないユーザー、または予算の限られているユーザーの中には、どうすれば良いか悩んでいる方も多いでしょう。Kinstaに移行するお客様の中にも利用中のPHPバージョンがEOLに達しているお客様も少なくありません。

当社の推進事項は以下のとおりです:

  1. 当たり前のことかもしれませんが、ご利用のプラグインとテーマは最新バージョンでないと、更新してください。
  2. プラグインまたはテーマの開発者に連絡し、PHP 7.2、7.3または7.4(またはアップデートしようとしているバージョン)のサポートを追加するように依頼します。当社ではあるPHPバージョンのサポートを終了する前に、お客様に連絡します。事前の連絡は、開発者を雇うための予算のないお客様にとって特に重要です。
  3. 同じ機能を提供し、該当のPHPバージョンと互換性のある代替プラグインを探します。WordPressレポジトリには数千ものプレミアムプラグインおよびテーマがあるおかげで、どの用途であっても代替品が必ずあるはずです。
  4. 予算がある場合には、WordPressの開発者を採用し、異常を処理してもらう手もあります。

PHPを更新する方法について

更新の準備が整ったら、まず最初にウェブサイトの互換性試験を行います。WordPressウェブサイトをローカルでテストすることもできますが、本番サイトにより近いものであるステージング環境を利用することもできます。安全第一です!

Kinstaのお客様には、ワンクリックでステージング環境をご利用いただけます。ダッシュボードでPHPのバージョンを切り替え、試験を始めましょう。

WordPressのステージングサイトを作成する

また、古いバージョンのPHPからのバージョンアップの場合には、WordPressのインストールもバージョンアップするようにご注意ださい。2年前のWordPressを最新版のPHPと組み合わせると結果が良くないでしょう。ウェブサイトの試験ができて、PHPを更新する準備が整ったら、以下のリソースもご参照いただけます。

当社のWordPressウェブサイトのPHPバージョンを安全に更新する手順についてのガイドも是非ご確認ください。

KinstaでPHPを更新する

Kinstaのお客様には、該当のサイトをクリックして「ツール」にアクセスし、ご希望のPHPエンジンを選択するだけでPHPのバージョンを切り替えていただけます。現在、PHP 7.2、7.3および7.4が利用可能です。注:上記、PHP 5.6〜7.1のサポート終了予定日を記載しました。

PHP 7.4への切り替

PHP 7.4への切り替

cPanelでPHPを更新する

ご利用のホスティング会社がcPanelを使用している場合、おそらくPHPのバージョンの切り替えが利用可能です。cPanelにログインし、「ソフトウェア」カテゴリにある「PHPバージョンの選択」をクリックします。

cPanelにてのPHPバージョンの選択

cPanelにてのPHPバージョンの選択

ご利用のホスティング会社がサポートしているPHPバージョンのいずれか選択できます。

cPanelでのPHP 7

cPanelでのPHP 7

PHPの切り替えをサーバー上で手動で実施する

手順はオペレーティングシステムにより異なる為、独自のサーバを管理している方は必ず、公式のPHPインストールドキュメントを確認してください。関数、クラス、ラッパー、拡張機能、モジュールなどの変更点に注意しなければなりません。移行ガイドは例えば次のものがあります:

まとめ

今こそはPHP 7.4へのバージョンアップの時間です。サポートされているソフトウェアの使用のメリットだけでなく、パフォーマンス上のメリットも必ずあります。 ご利用のWordPressホスティング会社がまだPHP 7.3をサポートしていない場合は、新しいホスティング会社の利用を検討することを強くお勧めします。テーマ及びプラグインも同様です。開発者がまだパッチをリリースしていない場合は、代替手段を検討した方が良いでしょう。

あなたもPHP 7に切り替えたのでしょうか?その経験について、是非教えてください。切り替えはしやすかったですか?それともまだサードパーティ待ちですか?ご意見をお寄せください。


この記事が面白いと思った方は、KinstaのWordPressホスティングプラットフォームも大好きでしょう。ウェブサイトをスピードアップし、当社のベテランのWordPressチームからの24時間365日のサポートを是非ご利用ください。Google Cloudを使用したインフラストラクチャは、自動スケーリング、パフォーマンス、およびセキュリティに重点を置いています。Kinstaの魅力をご案内させてください。当社のプランをご確認ください。