「数年前に作ったホームページが、今もそのまま動いている」 — 中小企業のサイトでは珍しくない状態です。見た目は問題なくても、サイトを動かしている PHP のバージョンがとっくにサポート切れになっている、というケースを保守のご相談でよく見かけます。

結論:2026 年 10 月時点で、PHP 8.1 以前はすべてサポート終了しています。さらに PHP 8.2 も 2026 年 12 月 31 日でサポートが終わります。WordPress を含む PHP 製のサイトを運用しているなら、まず今のバージョンを確認し、8.3 以上へ計画的に移行してください。本記事では、バージョン別のサポート期限、古いままにするリスク、確認方法と安全な上げ方を順に整理します。

PHP の「サポート期限(EOL)」とは

PHP は、新しいバージョンが毎年 11 月ごろに公開され、各バージョンには 2 段階のサポート期間があります。

  • アクティブサポート(公開から約 2 年):不具合の修正とセキュリティ修正の両方が提供される期間
  • セキュリティサポート(その後約 2 年):重大なセキュリティ修正だけが提供される期間

この 2 つが終わった時点が EOL(End of Life)です。EOL を過ぎたバージョンには、新しい脆弱性が見つかっても公式の修正が一切出ません。2024 年に PHP の開発チームはサポート期間の数え方を見直し、現在は各段階が「12 月 31 日」で区切られるようになっています。

バージョン別サポート期限一覧(2026 年 10 月時点)

バージョンアクティブサポート終了セキュリティサポート終了2026 年 10 月時点の状態
PHP 7.4 以前—2022 年 11 月サポート終了。早急な移行が必要
PHP 8.0—2023 年 11 月サポート終了。早急な移行が必要
PHP 8.12023 年 11 月2025 年 12 月 31 日サポート終了
PHP 8.22024 年 12 月 31 日2026 年 12 月 31 日セキュリティ修正のみ。残り約 2 か月
PHP 8.32025 年 12 月 31 日2027 年 12 月 31 日セキュリティ修正のみ
PHP 8.42026 年 12 月 31 日2028 年 12 月 31 日アクティブサポート中
PHP 8.52027 年 12 月 31 日2029 年 12 月 31 日アクティブサポート中(最新)

※ 最新の情報は PHP 公式サイトの「Supported Versions」ページで確認してください。

これから移行するなら、移行先は 8.3 以上が現実的です。8.2 に上げても、2 か月後には再びサポート切れになってしまいます。CMS やプラグインが対応していれば、8.4 を選ぶと次の移行まで 2 年以上の余裕ができます。

古い PHP を使い続けると何が起きるか

見つかった脆弱性がふさがらない

EOL 後も PHP 本体の脆弱性は見つかり続けます。たとえば 2024 年に公表された CVE-2024-4577 は、Windows 上の PHP で外部から任意のコードを実行できる深刻なもので、修正版は当時サポート中だった 8.1 / 8.2 / 8.3 にしか提供されませんでした。7.x や 8.0 を使っていたサーバーには、公式の修正手段がありません。詳しくは サーバーログに届く PHP 攻撃の正体 で解説しています。

CMS やプラグインの更新が止まる

WordPress 本体やプラグインは、新しい PHP を前提に開発が進みます。古い PHP のままだと、プラグインのセキュリティ更新を適用できず、PHP 本体だけでなくその上のソフトウェアまで古いまま固定される状態になります。実際の被害は、PHP 本体よりもこちらから起きることのほうが多いのが実情です。

レンタルサーバー側で強制的に切り替えられる

多くのレンタルサーバーは、古いバージョンの提供を順次終了します。告知メールを見落としていると、ある日突然バージョンが切り替わり、古い書き方のコードが動かなくなってサイトが真っ白になる、という事態も起こります。

取引先や監査で指摘される

取引先のセキュリティチェックシートや、個人情報を扱う業務の監査で「サポート中のソフトウェアを使っているか」を問われることが増えています。サポート切れの PHP は、それだけで説明がしにくくなります。

自社サイトの PHP バージョンを確認する方法

レンタルサーバーの管理画面

もっとも手軽なのは、サーバー会社の管理画面にある「PHP バージョン設定」などのメニューです。ドメインごとに設定されていることが多いので、複数サイトがあれば全部確認します。

WordPress の「サイトヘルス」

WordPress なら、管理画面の「ツール → サイトヘルス → 情報 → サーバー」で PHP バージョンを確認できます。古いバージョンの場合は、サイトヘルスのステータス画面にも警告が出ます。

SSH で入れる場合

サーバーに SSH で入れるなら、次のコマンドで確認できます。

php -v

ただし、コマンドラインの PHP と Web サーバーが使っている PHP が別のバージョンになっていることがあります。最終的には管理画面か、Web サーバーの設定(PHP-FPM のバージョン)で確かめてください。

なお、確認のために phpinfo() を出力するファイルを公開ディレクトリに置くのは避けてください。サーバーの内部情報がすべて表示されるため、攻撃者が真っ先に探すファイルのひとつです。置いた場合は確認後すぐに削除します。

安全にバージョンアップする 5 ステップ

  1. 現状の棚卸し:PHP バージョン、CMS とテーマ・プラグインのバージョン、独自に書かれた PHP コードの有無を洗い出す
  2. バックアップ:ファイルとデータベースの両方を取得し、戻せることを確認しておく
  3. 検証環境で切り替え:本番のコピーを用意し、新しい PHP で主要ページ、問い合わせフォーム、管理画面、決済などを一通り動かす
  4. エラーの修正:非推奨・廃止された書き方を直し、対応していないプラグインは更新または代替品に置き換える
  5. 本番切り替えと監視:アクセスの少ない時間帯に切り替え、数日間はエラーログとフォームの到着を確認する

特に、問い合わせフォームは「表示はされるが送信できない」壊れ方をしやすい箇所です。切り替え後は必ず実際に送信して、メールが届くところまで確かめてください。

バージョンアップで壊れやすい箇所

  • 7.x → 8.x:内部関数に型の合わない引数を渡すとエラー(TypeError)で処理が止まるようになり、文字列と数値の比較結果も変わりました。未定義の変数や配列キーへのアクセスも、注意(Notice)から警告(Warning)に格上げされています
  • 8.1 → 8.2 以降:クラスに宣言されていないプロパティを動的に作る書き方が非推奨になり、古いプラグインで大量の警告が出ることがあります
  • 8.4 以降:引数のデフォルト値が null の場合に型を暗黙に null 許容とする書き方が非推奨になるなど、古いライブラリで警告が増えます
  • 古いライブラリの同梱:独自システムに同梱された古いメール送信ライブラリや PDF 生成ライブラリが、新しい PHP に対応していないことがあります

独自システムで古い書き方が多い場合は、バージョンアップの範囲を超えて作り直したほうが総額で安くなることもあります。判断の目安は サイトリニューアル や 業務システム開発 のページも参考にしてください。コードそのものに潜む脆弱性については PHP でよくある脆弱性 7 つと対策 にまとめています。

よくあるご質問

サポートが終わったPHPでも、今すぐ動かなくなるわけではないのですか?

はい。サポート期限を過ぎてもサイトはそのまま動き続けます。問題は、期限後に見つかった脆弱性に公式の修正が出なくなることです。動いているから安全、ではなく、動いているが穴がふさがらない状態だと考えてください。

レンタルサーバーなら、PHPの更新はサーバー会社がやってくれますか?

サーバー会社が提供するのは、選べるPHPバージョンの一覧と、各バージョン内の修正までです。どのバージョンを使うかの切り替えは、多くの場合契約者側の操作です。古いバージョンが選ばれたままになっていないか、管理画面で確認してください。

PHPのバージョンを上げるとサイトが壊れることはありますか?

あります。古いテーマやプラグイン、独自に書かれたPHPコードが、新しいバージョンで廃止された書き方を使っていると、エラーや表示崩れが起きます。本番でいきなり切り替えず、検証環境で動作確認してから切り替えるのが安全です。

どのバージョンに上げればよいですか?

2026年10月時点では、PHP 8.3 以上をおすすめします。8.2 は2026年12月末でサポートが終わるため、今から 8.2 に上げると数か月後にまた作業が必要になります。使っているCMSやプラグインが対応しているかを確認したうえで、できるだけ新しいバージョンを選んでください。

PHPのバージョンアップを依頼すると費用はいくらですか?

サイトの規模や、独自コードの量、テーマやプラグインの改修が必要かで大きく変わるため、現状を確認したうえでお見積もりします。バージョンアップ後の継続的な更新は、スグレルの保守・運用(月額1万円〜、税抜)で対応しています。