PHPの最新バージョンとサポート期限を徹底解説!WordPressやサーバーを安全に更新する方法

18 min 63 views

自社サイトやクライアントのWordPressに「PHPの更新が必要です」と出ていても、どのPHP最新バージョンが安全で、いつまでサポートされるのかが分からないまま放置していないでしょうか。結論としては、最新安定版とサポート期限を正確に押さえ、自分の環境のPHPバージョン確認をしたうえで、互換性を見極めた段階的アップデートを行うことが、セキュリティと売上の両方を守る最短ルートです。

本記事では、PHPバージョン一覧とサポート期限の整理から、PHP7とPHP8の違いと互換性、サポート切れリスクの実務的な影響までを一気に俯瞰します。そのうえで、LinuxやWindowsでのPHPインストールと最新バージョンへのアップデート手順、共用レンタルサーバーやロリポップでのPHPバージョンアップ、WordPressのPHPバージョン対応表とテーマ・プラグインのチェック方法、PHPバージョンアップ5から8への一気上げ時の危険ゾーンまで、実務レベルで踏み抜きやすいポイントを整理します。

さらに、PHPバージョンアップ後に真っ白画面になる典型パターンや、数日後にバッチや予約投稿だけ止まるような「静かな不具合」を防ぐチェックリストを提示し、どのPHPバージョンを選ぶべきかというおすすめバージョンと中期運用プランの考え方まで踏み込みます。PHP 最新バージョン 安定版の選定から、WordPressや既存システムを壊さず更新する具体的なロジックを、一度で取りこぼしなく把握したい方のための内容です。

目次

いまのPHPの最新バージョンとサポート期限をまず押さえる

「サーバーを壊さずに速く、安全にしたい」と思った瞬間から、この章があなたのロードマップになります。私の視点で言いますと、ここをあいまいにしたまま作業を始めてしまうケースが、現場トラブルの8割を占めています。

PHPの最新安定版とサポート中バージョン一覧は8系のどこまでが“安全圏”なのか

まず押さえたいのは、「今サポートされている8系はどこまでか」です。最新版に飛びつく前に、安定運用できる“安全圏”を理解しておくと判断が一気にラクになります。

代表的なイメージは次の通りです。

系列 状態のイメージ 現場での位置づけ
8.3系 最も新しい機能と改善が入る 新規案件やテスト環境向け
8.2系 機能もサポートも厚い 多くの案件で本命候補
8.1系 セキュリティ中心のフェーズ 既存システムの延命ゾーン

「安全圏」としておすすめしやすいのは、サポートが十分に残っている8.2系と、状況次第で8.3系です。
逆に7系や8.0系は、たとえ今動いていても、保険切れの車で高速道路を走っているような状態だと考えてください。

PHPのサポート期限とEOLの仕組みを2分で理解する(アクティブとセキュリティの違い)

PHPのサポートは、ざっくり言うと次の2段階で進みます。

  • アクティブサポート期間

    バグ修正も新機能も入る元気な時期。
    新規開発やバージョンアップのターゲットにしやすいゾーンです。

  • セキュリティサポート期間

    クリティカルな脆弱性だけ対応される「延命期間」。
    大きな仕様変更は入らないため、安定はするものの、攻撃手法の高度化には追いつきにくくなります。

このどちらも終わった状態がEOLです。
EOLに入ったバージョンは、新しい脆弱性が見つかっても放置されるので、監査や顧客レビューでは真っ先にチェックされます。
ここを把握しておくと、「今すぐ上げるべきか」「次の予算で計画するか」の線引きが具体的になります。

PHPのバージョン一覧と今すぐ上げるべき古いバージョンチェックリスト

自分の環境がどこにいるのかを、まずは冷静に棚卸ししてみてください。

動いているバージョン 判定 行動の目安
8.2/8.3系 安心寄り 現状維持しつつ、テーマやプラグインの対応状況を定期確認
8.1系 要計画 次の大きめアップデートで8.2系以上に乗り換え準備
8.0系 要注意 テスト環境を用意し、数カ月以内の更新計画を立てる
7系以下 危険域 まずバックアップ、その後テスト環境で8系への移行検証を開始

チェックポイントとして、次のようなリストで洗い出すと漏れを防げます。

  • 共用レンタルサーバーか、VPSや専用サーバーか

  • WordPressやECサイトなど、売上に直結するサイトが乗っているか

  • バッチ処理や予約投稿、外部API連携など「目に見えない処理」があるか

  • 監査やセキュリティチェックを受ける予定があるか

ここまで整理できれば、「どのバージョンに、いつ、どうやって上げるか」の議論が一気に現実的になります。次の章では、古いバージョンを放置した場合に実際どんなダメージが出るのか、現場の視点で切り込んでいきます。

古いPHPを放置すると何が起きるのか?セキュリティと売上のリアルなリスク

「今、動いているなら触りたくない」まさにここから、静かに事故が始まります。サーバーの奥で進行するトラブルは、気付いたときには売上と信用をごっそり持っていきます。

PHPのサポート切れリスクと攻撃されてからでは遅い現場の被害シナリオ

サポートが終了したバージョンは、新しい脆弱性が見つかってももう直してもらえない状態です。CVEやCVSSスコアで高危険度と評価された欠陥が放置されるイメージです。

よくあるシナリオを整理すると、危険度が見えてきます。

  • 古いバージョンを狙い撃ちしたボットから、24時間自動スキャンを受ける

  • 管理画面や会員機能の穴を突かれ、不正ログイン・情報流出

  • 改ざんされたページからマルウェアを配布してしまい、検索結果に警告ラベルが表示

  • 復旧のためにエンジニアと制作会社が数日拘束され、本来やりたい施策が全停止

状態 攻撃されるまでに見えるサイン 実際に起きるダメージ
サポート中 エラーログや警告で気付きやすい パッチ適用で収束しやすい
サポート切れ 表面上は「普通に動く」 ある日まとめて侵入・改ざん

私の視点で言いますと、相談を受ける案件の多くは「壊れてから連絡」ですが、その時点で被害額と復旧コストは、計画的なバージョンアップの数十倍になっていることが珍しくありません。

PHPのサポート期限切れと監査や顧客レビューで突かれるポイント

情報セキュリティ監査や取引先のWebシステムレビューでは、「今エラーが出ているか」よりもEOLソフトを放置しているかどうかが強く見られます。

チェックされやすいポイントは次の通りです。

  • サーバーのPHPバージョンとサポート期限一覧を提示できるか

  • サポート終了日を過ぎたバージョンを、本番環境で使い続けていないか

  • アップデート方針(いつ・どう上げるか)の文書化があるか

  • テスト環境と本番環境のバージョン差が管理されているか

指摘内容 現場で起きがちな結果
サポート切れの継続利用 取引先から是正要求、場合によっては入札失格
計画の不在 社内稟議が通らず、常に場当たりな対応
記録不足 インシデント発生時に説明責任を果たせない

監査で一度「古いまま放置していますね」とマークされると、以降のあらゆる改善提案が疑いの目で見られるようになります。技術だけでなく、ビジネス上の信頼スコアも下がると考えた方が安全です。

PHP7とPHP8で変わるパフォーマンスやビジネスインパクト(体感速度とCVの関係)

技術的な機能差に目が行きがちですが、Web担当者が押さえるべきはページ速度が売上と離脱率に直結する点です。

  • 同じサーバースペックでも、PHP8系への移行でレスポンスが大きく改善するケースが多い

  • WordPressやECサイトでは、一覧ページや検索結果ページの表示が特に高速化しやすい

  • 体感速度が1〜2秒改善すると、広告からの離脱率が目に見えて下がるケースがある

観点 PHP7系の典型像 PHP8系に上げたときの変化イメージ
ページ表示速度 高負荷時にもたつきやすい 同じトラフィックでも余裕を感じやすい
サーバー負荷 CPU使用率が高止まり 同等アクセスでCPUに余裕が出る
ビジネス面 広告費を速度ロスで目減り 同じ広告費でCVチャンスが増える

「広告費は増やしたのに成果が伸びない」という相談の裏に、古いPHPと遅いレスポンスが隠れていることがあります。サーバーのVerUPは、単なる技術改善ではなく、CVを守るためのインフラ投資と捉えると判断がしやすくなります。

自分の環境のPHPのバージョン確認方法まとめ(LinuxやWindowsやWordPressや共用サーバー)

「とりあえず最新版に上げたい」と動き出す前に、まずは今どのバージョンで動いているかを正確に押さえることが勝負どころです。ここを雑に済ませると、テスト環境と本番環境でバージョンがズレたまま進んで、リリース当日に真っ白画面…という事故につながります。

下の表が、環境別のざっくりマップです。

環境 いちばん手早い確認方法 注意ポイント
Linuxサーバー sshでphp -v / phpinfoページ表示 CLIとWebでバージョンが違うこと有
Windows コマンドプロンプトでphp -v 複数パス混在とIISのハンドラ設定
WordPress サイトヘルス・ツールサイト健康状態 メッセージのレベルを見極める
共用サーバー コントロールパネルのPHP設定画面 ドメインごとの設定差分に注意

私の視点で言いますと、ここを丁寧に洗い出した案件ほど、その後のVerUP作業がスムーズに転がっていきます。

PHPのバージョン確認コマンドとLinuxサーバーでの確認ポイント(php -vとphpinfoの見るべき場所)

Linuxでは、まずsshでログインして次を実行します。

  • php -v

  • which php(どのバイナリを使っているか)

  • php -m(Extensionsの状況もざっくり確認)

ここでCLIのphpとWebサーバー(Apacheやnginx)が使うphpが違うケースがよくあります。たとえば、OS標準のパッケージと、/opt/配下に入れた新バージョンが共存しているパターンです。

Web側は、ドキュメントルートに簡単な確認用ファイルを置きます。

  • 中身は <?php phpinfo(); の1行だけ

  • ブラウザでアクセスして「Loaded Configuration File」と「PHP Version」を確認

CLIとphpinfoの両方を必ず見比べて、Composerが見ているバージョンと、本番リクエストを処理しているバージョンが一致しているかを確かめてください。ここがズレていると、テストは通るのにcronだけ落ちる、という地味に厄介なトラブルを生みます。

Windows環境でのPHPのバージョン確認と、よくある複数バージョン混在トラブル

Windowsでは、次の順番で確認すると漏れが少なくなります。

  1. コマンドプロンプトまたはPowerShellで php -v
  2. where php で複数のphp.exeがないか確認
  3. XAMPPやWampServerを使っている場合は、その管理画面のバージョン表示
  4. IISの場合は、IISマネージャーの「ハンドラマッピング」からFastCGIのパスをチェック

現場で多いのは、PATHに古いphp.exeが残っていて、コマンドラインは古いバージョン、IIS経由のWebだけ新しいバージョンという混在です。ライブラリのインストールテストをCLIで行って「問題なし」と判断したのに、本番リクエストでは別バージョンが動いている、という矛盾が起きます。

バージョンアップ前後は、必ず以下をセットでメモしておくと安全です。

  • CLIのphpのフルパス

  • IIS FastCGIで参照しているphp-cgi.exeのパス

  • 旧バージョンの保存場所(ロールバック用)

WordPressでPHPのバージョン確認とPHPの更新が必要ですメッセージの正しい読み方

WordPressでは、管理画面だけでかなりの情報が取れます。

  • 「ツール」→「サイトヘルス」→「情報」→「サーバー」タブで現在のPHPバージョン

  • 「サイトヘルスステータス」に表示されるPHP関連の項目

特にPHPの更新が必要ですというメッセージは、レベルを見極めることが大事です。

  • 推奨レベルの警告

    → サポート中だが、WordPressが推奨するバージョンより古い状態。計画的なVerUP候補。

  • 重大な問題として扱われる警告

    → セキュリティサポート終了間近、またはすでに終了したバージョンの可能性が高い状態。

ここでやってはいけないのが、「メッセージが出ているから、今すぐ管理画面からPHPを切り替える」判断です。テーマやプラグインが対応していない場合、予約投稿やフォーム送信だけが静かに壊れます。必ずテスト環境で、テーマと主要プラグインの対応バージョンを事前確認→コピーサイトで動作確認→本番反映の順で進めてください。

PHPのバージョン確認ができないときにチェックすべきサーバー設定や落とし穴

共用レンタルサーバーや古い環境では、バージョン確認が思うようにできないケースが出てきます。そのときは、次の順で「どこがボトルネックか」を切り分けると早くたどり着けます。

  • sshログインができない

    → コントロールパネルの「PHP設定」「サーバー情報」「バージョン一覧」ページを確認

  • phpinfoファイルを置いてもダウンロードされるだけ

    → PHPが有効になっていないか、.phpのハンドラ設定が壊れている可能性

  • 複数ドメインを持っていて、どれがどのバージョンか分からない

    → 各ドメイン直下に別々のphpinfoファイルを置き、URL単位でバージョンを確認

  • モジュール版とCGI版でバージョンが違うサーバー

    → .htaccessの設定(AddHandler/SetHandler)で、どちらを使っているかを確認

レンタルサーバーでは、ドメインごと・サブドメインごとに違うPHPバージョンが割り当てられていることが珍しくありません。テスト用サブドメインだけ先に新バージョンへ切り替え、本番ドメインは古いまま、という「段階的な切り替え」ができるサーバーも多いので、VerUP計画を組む前にこの仕様を把握しておくと、事故をかなり抑えられます。

この段階できちんと現状を“見える化”できれば、サポート期限の確認やアップデート手順の検討も、数字と事実に基づいた冷静な判断に変わっていきます。

PHP7からPHP8へのバージョンアップで“本当に”注意すべき互換性ポイント

PHP7から8へのVerUPは、ボタン1つの更新ではなく、システムの性格が変わるリリースだと考えた方が安全です。表画面だけ動いても、裏側で静かにデータが壊れるケースを何度も見てきました。

PHP7とPHP8の違いや互換性:非推奨関数や削除機能で起こりやすいエラー

PHP8はパフォーマンスと型の厳格さが上がった一方で、「今までなんとなく動いていたコード」が真っ先にトラブルになります。

代表的なポイントを整理します。

起こりやすい互換性トラブル

  • 戻り値や引数の型が厳格化し、nullや数値文字列の扱いでTypeError

  • create_functionや古いereg系など、既に非推奨だった関数が完全削除

  • warningだった挙動がErrorに昇格し、処理全体が停止

  • 非推奨の動的プロパティでDeprecatedが大量発生し、ログが肥大化

特に本番サーバーでerror_reportingが抑制されている環境では、開発者の目に触れないままログだけ増え、ディスクを圧迫してサイト全体が不安定になることがあります。

テスト環境で最低限チェックしたい観点は次の通りです。

  • 画面表示だけでなく、CSV出力やPDF生成などの拡張機能

  • 会員登録や決済など、バリデーションが複雑なフォーム

  • 外部API連携(レスポンスフォーマットの想定ずれで型エラーが出やすい)

PHPバージョンアップ5から8へ一気に上げるときの危険ゾーン(フレームワークやライブラリの対応状況)

PHP5から8への一気上げは、土台ごと建て替えるレベルの工事です。フレームワークやライブラリの対応状況を見ずに進めると、真っ白画面と終わらないデバッグに追い込まれます。

特に注意したいのは次の3点です。

  1. フレームワーク本体の対応バージョン
  2. 利用中ライブラリの最終更新日とサポート状況
  3. 独自実装のレガシーコード量

ざっくりの危険度イメージをまとめると次のようになります。

組み合わせ 危険度 コメント
PHP5系 + 独自MVC + 古いライブラリ 非常に高い 段階的に7系を経由する計画が必須
PHP7.0〜7.2 + 古いCMS 高い CMS側の推奨バージョンを要確認
PHP7.3〜7.4 + 現行FW 依存ライブラリの更新で回避可能
もともと8対応コード 低い とはいえテスト環境は必須

私の視点で言いますと、PHP5から直接8に上げる案件では、まずPHP7.4での動作検証+フレームワーク更新を済ませてから8系へという二段階アップデートにすると、工数は増えてもトラブルコストは確実に下がります。

CakePHPやLaravelなど主要フレームワークのPHPサポート期限と現場の判断軸

フレームワークは「PHP本体のサポート期限」と「フレームワーク自身のサポート期限」の二重のタイムラインで管理されています。ここを混同すると、「PHPは新しいのにシステム全体としてはEOL」というねじれ状態になります。

判断軸をシンプルにすると次の通りです。

観点 見るべきポイント
PHP本体 アクティブサポートか、セキュリティサポートのみか
フレームワークの系統 LTSか通常版か、どのPHPバージョンまで検証済みか
ライフサイクル全体 3年先までEOLが来ない組み合わせか

特にCakePHPやLaravelのようなメジャー系は、「フレームワークのサポートが切れる少し前に、PHP本体のサポートも切れる」タイミングが発生しがちです。制作会社や情シスとしては、次の順番で判断すると事故が減ります。

  • まずフレームワークの公式ドキュメントで、対応PHPバージョンとサポート期限を一覧で確認

  • その範囲の中から、一番長くセキュリティサポートを受けられるPHPバージョンを選択

  • 最後に、レンタルサーバーやLinuxディストリビューションが提供しているバージョンと突き合わせる

この3ステップを外さずに計画すれば、PHPの最新リリースに踊らされず、安定運用寄りの堅い選択がしやすくなります。

共用レンタルサーバーやWordPressでの安全なPHPのバージョンアップ手順

「PHPを更新してください」と警告が出ているのに、触るのが怖くて閉じてしまう人は多いです。ですが、きちんと段取りさえ踏めば、共用レンタルサーバーとWordPressの組み合わせでも、サイトを止めずに安全に進められます。

全体の流れは、現状把握→テスト環境で検証→本番を短時間で切り替え→数日間の監視です。この4ステップを外さなければ、大事故はまず防げます。

ロリポップなど共用サーバーでのPHP更新や自動更新の思わぬ落とし穴

共用レンタルサーバーでは、管理画面のプルダウンを変更するだけでPHPのバージョンを上げられますが、そこでいきなり本番を切り替えるのが一番危険です。自動更新も同じで、「ある朝いきなりサイトが真っ白」になった相談を何度も見てきました。

ポイントは、同じサーバー内にテスト用の環境を作ることです。

  • サブドメインを1つ作る(例: staging.example.com)

  • そこにWordPressやシステムをコピーする

  • テスト環境のPHPだけを新しいバージョンに切り替える

  • 管理画面とフロントだけでなく、問い合わせフォームや決済、Cronで動いている処理まで試す

共用サーバーごとに設定場所は違いますが、押さえておきたい比較軸は次の通りです。

項目 共用サーバーの典型的な仕様 リスクポイント
PHP変更単位 ドメイン単位やディレクトリ単位 一部だけ古いまま残る
自動更新 有効にできるプランもある テストなしで切り替わる
ログ取得 エラーログは別ディレクトリ 場所が分からず原因調査不能

私の視点で言いますと、自動更新は「便利」ではなく「勝手にテストを省略される機能」と捉えた方が安全です。必ず事前にテスト環境で動作確認をしてから、本番ドメインのバージョンを切り替える流れを徹底してください。

WordPressのPHPバージョン対応表とテーマやプラグインのチェック手順

WordPressの場合、「本体が対応しているか」だけを見て安心してしまうケースが多いです。実際にサイトを壊すのは、テーマとプラグインの対応遅れです。

PHPを上げる前に、最低限次の3点はチェックしておきます。

  • WordPress本体のバージョンが、目標とするPHPバージョンに対応しているか

  • 使用中テーマ(特に買い切りの有料テーマ)が最近もアップデートされているか

  • 重要プラグイン(フォーム、会員機能、EC、サイト高速化など)の最終更新日と動作保証バージョン

実務で効果的なのは、重要度でプラグインを色分けすることです。

  • ビジネス直結系(予約、決済、会員、フォーム)

  • なくても致命傷ではない系(装飾、スライダー、SNS連携)

  • 代替が効く系(キャッシュ、セキュリティ、バックアップ)

テスト環境でPHPを上げたあと、まずはビジネス直結系から1つずつ動作確認し、不具合が出たプラグインは「一時的にオフ+代替案の検討」という手順を踏むと、売上への影響を抑えられます。

WordPressでPHP更新できないときに試すべきサーバー別の対処法

レンタルサーバーの仕様や契約プランによっては、管理画面からPHPを変更できない、あるいは希望するバージョンが選べないこともあります。その場合は、サーバー別に次のような打ち手があります。

  • 管理画面にPHP設定がない場合

    • サーバーのマニュアルで「.htaccessによるPHP指定」が可能か確認
    • 可能なら、対象ディレクトリだけ新しいPHPを指定してテスト環境を作る
  • 選べるPHPが古すぎる場合

    • 上位プランへの切り替えで新しいバージョンが提供されていないか確認
    • それでもだめなら、別サーバーにテスト用環境を用意し「引っ越し前提」で検証
  • 変更ボタンはあるがエラーで進めない場合

    • コントロールパネルのエラーメッセージと、サーバーのエラーログを必ずセットで確認
    • サポートに問い合わせる際は、「現在のPHPバージョン」「希望するバージョン」「WordPressの有無」「発生時間」をまとめて伝える

共用サーバーでは、サーバー側の制約とWordPress側の制約が交差する点でトラブルが起きやすくなります。テスト環境→手動切り替え→ログ監視という流れを作っておくと、予期せぬアップデートやプラン変更が入っても、慌てず対応できる体制になります。

LinuxやWindowsでのPHPの最新バージョンインストールとバージョンアップ実務ガイド

サーバーを落とさずにPHPを入れ替えるかどうかで、夜眠れるかが決まります。ここでは現場で実際にやっている「壊さないための手順」を、LinuxとWindowsに分けて整理します。

Linux(RHELやUbuntu)でPHPインストールバージョン指定やアップデートコマンドの流れ

Linuxでは「どのリポジトリから入れるか」を外すと、意図しない古いバージョンを入れてしまいがちです。

代表的な流れを整理すると、次のようになります。

RHEL系(RHEL、CentOS Stream、Rockyなど)の基本フロー

  1. 既存バージョン確認
    php -v / rpm -qa | grep php
  2. 提供元リポジトリ確認
    yum repolist で remi やAppStreamをチェック
  3. 目的バージョンのモジュール有効化
    dnf module reset php
    dnf module enable php:8.2 など
  4. インストール・更新
    dnf install php php-fpm php-mbstring php-mysqlnd など
  5. Webサーバー再起動
    systemctl restart php-fpm httpd nginx など

Ubuntu系(Ubuntu、Debian系)の基本フロー

  1. 既存バージョン確認
    php -v / update-alternatives –config php
  2. 必要なら外部リポジトリ追加(例:専用PPA)
    add-apt-repository ppa:…
  3. バージョン指定インストール
    apt update
    apt install php8.2 php8.2-fpm php8.2-mysql など
  4. 複数バージョン併存時の切り替え
    update-alternatives でCLIとFPMを揃える

テスト環境を用意せず本番で直接 dnf update / apt upgrade を叩くと、依存パッケージごと一気に変わって「一部だけ動かない」状態がよく起こります。私の視点で言いますと、本番と同じ構成のテスト環境を1台用意し、同じコマンドを先に試すことが、結果的に一番安くつくパターンが多いです。

RHELやRedHat系のPHPサポート期限とディストリビューションごとの“ズレ”に注意する理由

RHEL系で本当に厄介なのは、「PHP本体のサポート」と「ディストリビューションが提供するパッケージのサポート」がズレることです。公式がEOLでも、ベンダーが独自にセキュリティパッチを当て続けるケースがあるためです。

代表的な観点を表にまとめます。

視点 PHP公式 RHEL系ディストリ 現場での意味
バージョン寿命 比較的短い OSのライフサイクルに合わせがち 数年単位でズレる
パッチ提供元 php.net Red Hatや派生ベンダー CVE対応タイミングが異なる
監査での評価 公式EOLを基準に見られやすい 「ベンダーサポート有り」で説明が必要 証跡準備が必須

このズレを理解していないと、次のような事態になります。

  • OS側はサポート中だから安全と説明していたのに、監査側はPHP公式のEOLを根拠にNG判定

  • 社内の情シスと制作会社で「どこまでがサポート範囲か」の認識が食い違う

Red Hatのサポートポリシーやリリースノートを参照し、「どのPHPストリームをいつまで使えるか」「CVE対応は誰が責任を持つか」を文書で合意しておくと、後から揉めにくくなります。

WindowsサーバーでのPHPインストールやバージョンアップ時に見落とされがちなIIS設定

Windowsは「zipを展開してphp.exeを置けば終わり」と思われがちですが、IISまわりを外すと本番だけ500エラーになるケースが多発します。

特に注意したいポイントをまとめます。

1. ハンドラーマッピングの更新

  • 旧バージョンの php-cgi.exe を指したままにしない

  • IISマネージャーの「ハンドラーマッピング」で、実行パスを新しいフォルダに更新

  • 32bit/64bitの取り違えが混在トラブルの元

2. php.iniと拡張モジュールのコピー方法

  • 単に旧php.iniをそのまま流用すると、廃止されたExtensionsで起動エラー

  • 新バージョンのphp.ini-developmentをベースに、必要な設定だけ移植する方が安全

  • extension_dirのパスを旧バージョンのフォルダのままにしない

3. 環境変数と複数バージョン混在

  • PATHに古いphp.exeのパスが残っていると、CLIだけ古いバージョンを使い続ける

  • composerやバッチ処理が「Webだけ新バージョン、裏側は旧バージョン」というねじれを起こす

最小限の手順としては、

  1. 既存のPHPフォルダを丸ごとバックアップ
  2. 新バージョンを別フォルダに展開
  3. 新php.iniをベースに設定を移植
  4. IISのハンドラーマッピングとFastCGI設定を新フォルダに向ける
  5. PATHの順序を確認し、php -v でCLIのバージョンをチェック

この順で作業すると、ロールバックも容易で、深夜に真っ白画面を眺めるリスクをかなり減らせます。Linuxより情報が少ない環境なだけに、Windowsサーバーでは「IIS設定とCLIのバージョン整合」を一つのチェックリストとして固定化しておくのがポイントです。

PHPバージョンアップで現場がよくハマるトラブルとプロの回避チェックリスト

「画面は動いているのに、売上だけ静かに落ちていく」
PHPのバージョンアップ後に現場で起きているのは、派手な大事故よりも、このタイプの“ジワジワ壊れる不具合”です。

最初は順調に見えたのに数日後に止まるバッチ処理や予約投稿の落とし穴

リリース当日は問題なさそうでも、数日後に次のようなトラブルが出てきます。

  • メルマガや請求書発行のバッチが止まり、売上データが更新されない

  • WordPressの予約投稿だけ失敗して公開されていない

  • 在庫連携のCronが落ちて、在庫切れ商品を販売し続けてしまう

原因の典型はこの3つです。

  • date関数やタイムゾーン周りの仕様差で、日付計算がズレる

  • 外部APIクライアントライブラリが新しいPHPで非推奨になり、例外を投げて即終了する

  • 共用レンタルサーバー側でCron実行PHPとWeb側PHPのバージョンが違い、テスト対象から漏れている

バッチや予約投稿は「静かに失敗してログだけ増える」ので、本番リリース直後よりも“翌日以降のモニタリング”が勝負になります。

PHPバージョンアップ後に真っ白画面になる典型パターンやログの読み方

真っ白画面は、PHPが致命的エラーで止まっているサインです。現場で多いパターンを整理します。

  • 廃止関数の呼び出し

  • 型エラー(PHP8の厳格化で顕在化)

  • 旧バージョン専用拡張モジュールの読み込み失敗

真っ白になったら、次の順で原因を追うと早いです。

  1. Webサーバーログ
  2. PHPのerror_log
  3. フレームワーク独自のログ(Laravelのstorageログなど)

ログで見るべきポイントは次の通りです。

確認箇所 見るポイント
エラーレベル Fatal / Parse / Type など致命的なものか
ファイルパス どのプラグインやライブラリで落ちているか
タイムスタンプ バージョンアップ直後から発生しているか

ブラウザで症状を見る前に、ログで“どの層で落ちているか”を特定する習慣があると、復旧スピードが大きく変わります。

テスト不足が招く静かな不具合を防ぐためのチェック項目(画面やAPIやバッチやCron)

画面だけポチポチ確認して「問題なし」と判断すると、数日後に信用を失いやすい領域で必ず痛みます。私の視点で言いますと、PHPのVerUP前後で最低限この一覧は押さえておきたいです。

種別 チェック観点
画面 ログイン後の更新系画面、管理画面のCSV入出力、画像アップロード
API 決済や配送連携の外部API、タイムアウトやエラー時の再試行
バッチ 売上集計、ポイント付与、定期課金、メール一括送信
Cron WordPress予約投稿、RSS配信、在庫同期、バックアップ処理

チェック時のポイントを箇条書きにまとめます。

  • 共用サーバーでは「WebとCronのPHPバージョン設定が同じか」を必ず確認する

  • テスト環境と本番環境で、拡張モジュールや設定(memory_limit、timezone)が揃っているかを見る

  • テスト期間中、error_logの新規出力を毎日ざっと確認し、「Warningが急増していないか」を見る

  • WordPressはテーマと主要プラグインを一つずつ有効化して動作確認し、問題が出た組み合わせをメモしておく

最後に、テスト環境を作れない共用レンタルサーバーでは、サブドメインにコピーサイトを置いて、PHPのバージョンを切り替えて試すだけでも事故率は大きく下がります。画面、API、バッチ、Cronの4レイヤーを意識してチェックできれば、PHPバージョンアップは“怖い作業”から“計画的なメンテナンス”に変わっていきます。

どのPHPのバージョンを選ぶべきか?おすすめバージョンや中期運用プランの立て方

「どれを入れれば、3年後に自分の首を絞めないか」を決めるのがバージョン選定です。最新版か安定版かで迷って止まるより、ここで軸を固めておくと、その後の運用が一気に楽になります。

PHPの最新バージョンと安定版の違いに注目!あえて一つ前を選ぶ現場判断のロジック

リリース直後の最新版は機能面では魅力的ですが、実務では「半年〜1年様子を見てから採用」という判断がよく取られます。理由はシンプルで、以下の3点です。

  • フレームワークやCMSが追いついていない期間がある

  • 共用レンタルサーバーやWindowsサーバー側の提供が遅れることが多い

  • 初期の不具合やCVE(脆弱性情報)が落ち着くまで時間が必要

おすすめは次の考え方です。

  • 新規開発やリニューアル: 最新から1つ手前の安定版

  • 既存システムの延命・保守: 今使っている系統の最終安定版

例えば8系なら、8.2が出た直後は8.1を採用する、といったイメージです。これなら最新機能に近づきつつも、リスクを抑えられます。

PHPのサポート期限一覧から逆算する3年先を見据えたバージョン選定のやり方

バージョン選びで失敗しないコツは、「今安全か」ではなく「3年後も安全か」で判断することです。公式のサポート期限と照らし合わせると、次のような考え方になります。

判断軸 見るポイント やること
現在の系統 7系か8系か 7系なら更新計画を即検討
アクティブサポート 機能追加・仕様変更が入る期間 新規開発はこの期間に収まる系統を選ぶ
セキュリティサポート セキュリティ修正のみの期間 少なくともここが3年以上残る版を採用
EOL後 完全に終了 監査や顧客レビューで強く指摘される領域

3年先を見据える場合、「セキュリティサポートが3年以上残っている版」を選ぶのが基本線です。開発〜テスト〜リリース〜運用で2年近く経つことも珍しくないため、リリース時点で残り1年しかないバージョンを選ぶと、運用開始と同時に次のVerUP計画が必要になり、チームが疲弊しやすくなります。

社内体制や予算に合わせたPHPのバージョンアップ計画(段階的アップと一気上げの比較)

同じバージョンアップでも、「段階的に刻むパターン」と「一気に上げるパターン」で、必要な体制やコストが大きく変わります。私の視点で言いますと、現場で安全に回っているパターンは次のどちらかです。

方針 向いている環境 メリット デメリット
段階的アップ (7.2→7.4→8.1のように刻む) 影響範囲が読みにくい古いシステム、小規模チーム 1回あたりの変更が少なく、トラブル箇所を特定しやすい テストと作業の回数が増え、トータル工数は大きくなりがち
一気上げ (7.2→8.1のようにジャンプ) 自動テストが整備されたシステム、フレームワーク最新版が使える環境 1回の投資でサポート期限を一気に伸ばせる 互換性問題が一気に出て、リリース延期やロールバックのリスクが高い

社内体制や予算を整理する際は、次の観点をチェックしておくと判断しやすくなります。

  • 自動テストやステージングサーバーがあるか

  • Web担当や情シスだけで対応するのか、制作会社や開発会社が関わるのか

  • リリース後に障害が出た時、どれくらいの時間でロールバックできるか

テスト環境がなく、共用レンタルサーバー上でWordPressを運用しているケースなら、まずテーマとプラグインを最新化し、その後にサーバー側の切り替えを小刻みに試す段階的アップが現実的です。逆に、Linuxサーバー上でLaravelやCakePHPを使い、自動テストとログ監視がある環境なら、一気上げでサポート期限を長く確保する投資を検討する価値があります。

どの道を選ぶにしても、「今楽かどうか」ではなく次のVerUPでどれだけ楽できるかまで含めて設計しておくと、数年単位で見たときのコストとリスクがぐっと下がります。

専門家が見ている裏側とPHPの運用で失敗しないための思考法

「バージョンを上げるかどうか」ではなく、「ビジネスを止めない運用をどう設計するか」で発想を切り替えると、トラブルの9割は未然に防げます。

公式情報だけでは分からないPHPのサポート切れがビジネスに波及するパターン

公式のサポート期限一覧は大事ですが、現場で本当に痛いのはその先です。典型パターンを整理します。

状況 技術的な出来事 ビジネス側で起きること
サポート切れを放置 脆弱性CVEが公開される 顧客のセキュリティチェックシートで失点
ホスティング側で強制VerUP 古いフレームワークが動かない 問い合わせフォームや決済が数日止まる
社内監査で発覚 EOLのまま運用 システム更改を短納期で迫られコスト爆発

特に、共用レンタルサーバーで「自動アップデート」が有効な場合、週末の深夜にバージョンが上がり、月曜朝に予約投稿やバッチ処理だけ落ちているケースが目立ちます。サーバー管理画面で「自動更新の有無」「切り替え予定バージョン」を事前に確認し、テスト環境で同じバージョンに合わせておくことが、ビジネスリスクの最小化につながります。

同業者が省きがちなログチェックや裏側処理テストをあえて丁寧にやる理由

画面が動いているからといって、システム全体が健康とは限りません。PHPのバージョンアップ後は、次の3点をセットで見ることが重要です。

  • Webアクセスログ

    404や500の急増、有名プラグインの特定URLだけエラーになっていないかを確認します。

  • PHPエラーログ

    noticeやdeprecatedだけであっても、将来の更新で致命的エラーに変わる「予兆」になります。

  • 裏側処理のテスト

    Cron、バッチ、外部API連携、メール送信、エクスポート処理を最低一巡させます。

している私の視点で言いますと、トラブル相談の半分以上は「公開画面はテストしたが、夜間バッチを誰も見ていなかった」というパターンです。特にWordPressの予約投稿や、ECサイトの在庫同期ジョブは、落ちても気付きにくく、発見時には売上や信頼がすでに目減りしています。

相談現場でくり返し出てくる誤解と、それをほどくためのPHPのバージョン運用マインドセット

相談の現場で何度も出てくる誤解と、それに対する考え方をまとめます。

よくある誤解 危険な理由 持つべきマインドセット
最新ならとりあえず安全 ライブラリが未対応の場合がある 「サポート期限内で、周辺ツールが追随している版」を選ぶ
表示されていればOK 裏側のジョブやAPIが落ちていることが多い 「画面・API・バッチ・メール」を1セットでテストする
共用サーバー任せでよい 強制VerUPのタイミングを選べない 管理画面のバージョン設定を自分で把握しておく
サポート切れでも今動いているから大丈夫 新しい脆弱性が出た瞬間に無防備になる 「動くかどうか」より「守られているか」で判断する

PHPの運用は、単なる技術作業ではなく、「いつ、どのバージョンに、どんなテストを伴って上げるか」を設計するマネジメントの仕事です。
バージョン一覧とサポート期限をカレンダーに落とし込み、「この月に検証」「この月に本番反映」といったロードマップを先に引いておくと、監査にも顧客レビューにも説明しやすくなり、現場の心理的負担も一気に下がります。

この記事を書いた理由

著者 – 宇井 和朗(株式会社アシスト 代表)

PHPのバージョン問題は、これまで関わってきた多くの企業サイトやWordPressで、集客や売上を一瞬で止めかねない“見えないリスク”として何度も突き当たってきました。アクセスは順調なのに、PHPのサポート切れを放置していたせいで、ある日突然管理画面が真っ白になり、広告を止めざるを得なくなったケースや、バージョンを上げた直後は動いていたのに、数日後にだけ予約投稿とバッチ処理が止まり、問い合わせの半分が取りこぼされていたケースもあります。経営側から見ると「なぜ事前に防げなかったのか」という話になりますが、現場では「どのバージョンが安全で、どこまで上げていいか」が分からず手が止まっていることがほとんどでした。だからこそこの記事では、SEOやWeb集客の現場で実際に起きたトラブルを踏まえ、技術者だけでなく、経営者やマーケ担当が自信を持ってPHP更新の判断ができるよう、サポート期限の考え方と具体的な更新手順を整理しました。PHPの更新を「怖い作業」ではなく「ビジネスを守り伸ばすための定期メンテナンス」に変えてもらうことが狙いです。