あなたのWordPressや自社サイトに「PHPの更新が必要です」「PHPバージョンが古くサポート切れです」と出ているなら、そのまま放置するほど、見えない損失は積み上がります。古いPHPバージョンは、脆弱性リスクだけでなく、サーバー会社の自動切替やプラグイン非対応による突然の白画面や機能停止を招きます。一方で「最新が安全そうだからPHP8に一気にアップデート」も、テーマやLaravel・CakePHP・Drupalとの相性次第で同じくらい危険です。
本記事では、PHPバージョンとは何か、サポート期限とEOL、古いPHPを使うリスク、PHPバージョン確認方法(WordPress・レンタルサーバー・コマンド・phpinfo)、最新と推奨のPHPバージョンまでの基本を押さえつつ、そこで終わりません。どこまで上げるべきかの現実的な上限ライン、サポート期限一覧を運用に落とし込む考え方、PHPバージョンアップ手順と影響調査、ロールバック戦略、白画面や500エラーが起きたときの現場での対処、さらに自力対応と外注の境界線や見積りの読み方まで、一連の判断と実務を一つの導線で整理しています。
「自分のPHPバージョンは安全か」「phpバージョン確認コマンドやWordPressでの確認方法は何か」「どのPHPバージョンがおすすめか」「phpバージョンアップの影響をどう抑えるか」を、この1本でまとめて判断できる状態にします。読み進めるほど、PHPバージョン管理を後回しにすることが、最も高くつく選択だったと分かるはずです。
目次
まずPHPバージョンで何が問題かを3分でつかむ
「WordPressの管理画面に突然“PHPの更新が必要です”と出てきて、そっと閉じたまま…」という状態なら、まさに今が分かれ道です。PHPの数字は、単なるバージョン情報ではなく「このサイトがいつまで安全か」「どこまで速くできるか」を示す賞味期限ラベルのようなものだからです。
PHPバージョンとは何か、数字の意味とメジャー・マイナーの違いを徹底解説
PHPのバージョン番号は、ざっくり言うと次の3つの数字で構成されます。
| 例 | 呼び方 | 役割 |
|---|---|---|
| 8.1.23 | メジャー | 仕様が変わる“世代交代” |
| 8.1.23 | マイナー | 同じ世代内の改善・機能追加 |
| 8.1.23 | パッチ | バグ修正・セキュリティ対応 |
現場で重要になるのはメジャーとマイナーです。
-
7系から8系に上げる
→ 挙動が変わる関数が増え、テーマやプラグインの修正が必要になることがあります。
-
8.1から8.2に上げる
→ 同じ8系でも「非推奨機能」が増え、古いコードが警告やエラーを出し始めることがあります。
つまり、数字が1つ変わるたびに「どこまで壊れる可能性があるか」のレンジが変わる、という感覚で捉えると判断しやすくなります。
古いPHPバージョンがなぜ危険なのか、サポート切れと脆弱性のリアルな現場感
古いバージョンを使い続ける最大のリスクは、脆弱性が見つかってもパッチが出ないことです。家の玄関ドアに「この鍵はもう直しません」とメーカーに宣言されている状態に近いです。
現場でよくあるパターンは次の通りです。
-
セキュリティ診断で「サポート切れのPHP」として赤点になる
-
外部サービスとの連携や決済モジュールが「最低でも7.4以上必須」と言われて詰まる
-
監査や取引先チェックで「いつまでに何を更新するか」の説明を求められる
とくに中小企業のWordPressサイトでは、「サーバー会社が自動で切り替える予定」と「保守側のテスト計画」が噛み合わず、予定していないタイミングでサイトが白画面になるケースが目立ちます。これは、サポート期限と自社の運用スケジュールを結び付けて考えていないことが根本原因です。
「とりあえず動いているPHPバージョンを放置」でなぜ後悔する?コスパ最悪の理由
私の視点で言いますと、放置したサイトほど「一気にお金が飛ぶ」傾向があります。理由はシンプルで、同時に解決しなければならない山が積み上がるからです。
放置した場合に起きやすいコストは、次のように雪だるま式に増えます。
-
PHPだけでなく、WordPress本体・プラグイン・テーマも軒並み古い
-
サーバーのOSやデータベースもサポート切れ間近
-
影響範囲が広すぎて、検証環境の準備とテスト工数が跳ね上がる
対して、1〜2年ごとに小さくバージョンアップしているサイトは、
-
テーマやプラグインの対応状況を追いやすい
-
差分が少ないのでテストケースを絞り込める
-
不具合が出ても原因の切り分けがしやすい
というメリットがあり、結果としてトラブル時の復旧も早く、総コストが抑えられます。
放置か、計画的なアップデートかを分けるシンプルな目安として、次の3点をざっとチェックしてみてください。
-
使用中のPHPがサポート対象かどうか
-
WordPressやLaravel、CakePHPなど利用中のソフトの推奨バージョンと差がどれくらいあるか
-
バックアップと検証環境が“今すぐ”用意できるか
この3つがすべて怪しい状態なら、目先の「今動いているから大丈夫」という安心感よりも、「次の障害時にどれだけ現場が混乱するか」をイメージしておいた方が、結果的に財布へのダメージを抑えやすくなります。
PHPバージョンとサポート期限を正しく読む、7系・8系どこまでが”現実ライン”かを見極める
PHPバージョンのサポート期限一覧をチェック、公式のポリシーを運用で生かすコツ
まず「いつまで安全に使えるか」を一目で押さえておきます。ざっくりしたイメージは次の通りです。
| 系列 | 例 | 状態の目安 | 運用での扱い |
|---|---|---|---|
| 7.3以前 | 5.6 7.0 7.1 7.2 7.3 | 完全サポート終了 | 即座に入れ替え検討 |
| 7.4 | 7.4.x | すでにEOL扱い | 乗り換え前提で短期運用 |
| 8.0 | 8.0.x | サポート終了間近〜終了 | 新規採用は避ける |
| 8.1 | 8.1.x | 移行先候補 | 既存システムの着地点にしやすい |
| 8.2 8.3 | 8.2.x 8.3.x | 現役〜最新 | 新規構築や中長期の軸 |
公式サイトでは「アクティブサポート期間」と「セキュリティサポート期間」が明示されますが、現場では次のように読むと判断しやすくなります。
-
アクティブサポート終了 → 機能追加は諦めるが、すぐには慌てないライン
-
セキュリティサポート終了 → 脆弱性が放置されるため、監査や診断で確実に指摘されるライン
保守の現場でよくあるのが、レンタルサーバー側の自動切り替え予定と、自社のテスト計画が噛み合わず「気づいたら勝手に上がっていて白画面」というケースです。サポート期限をカレンダーに書くだけでなく、
-
サーバー会社の「自動VerUP予定日」
-
自社の「検証開始日」「本番切替日」「ロールバック期限」
という3つのデートをセットで管理しておくと、計画倒れになりにくくなります。
PHP7.4・8.0・8.1・8.2・8.3の今の位置付けと「これから選ぶべきPHPバージョン」はどれ?
現場での「現実ライン」は、単に最新かどうかではなく「サポート残期間×利用しているCMSやフレームワーク」で決まります。
| バージョン | 位置付け | 向いているケース |
|---|---|---|
| 7.4 | 延命中の旧世代 | レガシーCMSやプラグインが対応していない場合の一時避難 |
| 8.0 | 移行通過点 | 7系から段階的に上げるときの中継地点 |
| 8.1 | 安定した主力 | WordPressや多くのフレームワークで採用しやすい軸 |
| 8.2 | 近未来の主力 | 新規開発や長期運用前提のシステム |
| 8.3 | 先行投資ライン | フレームワーク側の対応状況を見ながら選ぶ上級者向け |
WordPress中心のサイトなら、テーマやプラグインが対応している範囲で8.1か8.2が無理のない落としどころです。長期運用の業務システムであれば、
-
フレームワーク(Laravel CakePHP Drupalなど)の対応表
-
サーバーOS(例としてRHEL系かUbuntu系か)のサポート期限
を掛け合わせて決めると、数年後にOSとPHPの両方が同時に寿命を迎える、といった「二重リプレイス地獄」を避けられます。
私の視点で言いますと、実務で一番安定しやすいのは「フレームワークが公式に最低2系統サポートしているうちの新しめ側に合わせる」パターンです。極端に最新を追いかけず、かといって“時代遅れ”とも呼ばれない絶妙なレンジに収まります。
PHP5.6や7.0系の古いPHPバージョンを使っているなら、リスクを減らす優先順位を徹底解説
5.6や7.0系をまだ使っている場合は、正直なところ「動いているから放置」は攻撃者から見ればごちそう状態です。優先順位をはっきりさせて一気に片付けた方が、結果的にコストを抑えられます。
-
現状把握
- 対象サーバーとサイトの一覧化
- どのCMS・フレームワーク・独自プログラムが動いているか洗い出し
-
影響度の高いシステムから着手
- 顧客情報や決済を扱うWebシステム
- 会社の信頼に直結するコーポレートサイト
-
段階的なアップグレード計画
- 5.6 → 7.4 → 8.1というステップを検証環境で実施
- 各ステップでエラーログと動作確認をセットにする
-
「あえて上げない」ゾーンの線引き
- 既に閉鎖予定で完全に社内IPからのみアクセス
- 外部公開を停止し、アーカイブとして残すだけのサイト
よくあるのが、「一部だけ古い環境を残しておく」ことで、脆弱性診断やセキュリティ監査のたびに毎回赤点扱いになり、現場が疲弊するパターンです。そうならないために、
-
外部公開を続けるなら最低でも7.4以上へ
-
長期運用なら8系へ一気に持っていく
という2段構えで考えると整理しやすくなります。セキュリティサポートが切れた環境を「例外」として抱え続けるほど、将来のアップデートもどんどん身動きが取りづらくなります。早めに“足場”を新しい系統へ移しておくことが、次のVerUPのハードルを下げる一番の近道です。
自分の環境でPHPバージョンを簡単に確認、WordPressやレンタルサーバー・コマンドも一括整理
運営画面の警告やサポート期限のニュースを見て「自分の環境は大丈夫か」が一番気になるところです。ここでは、現場で実際に使われている“最短ルート”だけをまとめます。
WordPressでPHPバージョンをサクッと確認、サイトヘルスやダッシュボードの活用法
更新通知を見て焦ったときは、まずWordPress側から確認すると迷いません。
- 管理画面左メニューの「ツール」→「サイトヘルス」
- 「情報」タブ→「サーバー」を開く
「PHP バージョン」の行に現在の値が表示されます。
もう1つの早いルートは、ダッシュボードの「概要」ウィジェットです。ここにPHPの項目が出ていれば、ログイン直後に確認できます。
注意したいのは、複数のサイトを同じサーバーで動かしている場合、サイトごとにPHPが違うことがある点です。1サイトだけ新しいバージョンに切り替えて検証し、問題なければ他のサイトも順番に上げる、という段階的な進め方が安全です。
私の視点で言いますと、WordPressの確認で不安を感じたら、次の「レンタルサーバー側の設定画面」を必ずセットで見る癖をつけておくと、後のトラブルをかなり減らせます。
さくらやエックスサーバー・お名前.comなどレンタルサーバーでのPHPバージョン確認の重要ポイント
多くのレンタルサーバーは「コントロールパネル」でPHPバージョンを切り替えます。表示場所は違っても、見るべきポイントは共通です。
主な確認場所のイメージは次の通りです。
| サーバー種別 | 画面上の主なメニュー例 | 注意ポイント |
|---|---|---|
| さくら系 | スクリプト設定 / PHP設定 | ドメインごとの設定を確認 |
| エックスサーバー系 | PHP Ver.切替 | 対象ドメインが合っているか |
| お名前.com系 | サーバー設定 / PHP設定 | サブドメインごとの違いに注意 |
レンタルサーバー側では、次の2点を必ず見てください。
-
「現在のバージョン」と「選択可能なバージョン」の両方
-
どのドメイン・ディレクトリにどの設定が効いているか
よくある事故は、サーバー会社の自動VerUPで全ドメインが一気に切り替わり、一部の古いサイトだけ動かなくなるケースです。自動更新の予定日やポリシーが書いてあるお知らせメールは、保守の観点では“重要な設計資料”だと考えて保管しておくと安心です。
Linux・WindowsサーバーでPHPバージョンを調べるコマンド&phpinfoの安全な使い方
自前サーバーやVPSの場合は、コマンドで確認するのが一番確実です。
| 環境 | よく使うコマンド |
|---|---|
| Linux・macOS | php -v |
| 複数バージョン管理時 | php82 -v など実行ファイルを指定 |
| Windows(PowerShell) | php -v または php.exeのパスを指定 |
複数のバージョンをインストールしている環境では、CLIのphpとWebサーバー経由のphpが違うことが頻発します。開発者が「php -vで問題ない」と判断しているのに、本番サイトだけエラーになるパターンは、ここが食い違っていることがほとんどです。
Webサーバー側の確認には、phpinfoを使うのが定番です。
- 公開ディレクトリに info.php などのファイルを作成
- 中身を
<?php phpinfo(); ?>のみとする - ブラウザでアクセスし、表示されたページの先頭付近にあるバージョンを確認
ここでの重要ポイントは、確認が終わったら必ずファイルを削除することです。phpinfoにはパスや拡張モジュールの情報が詳細に出るため、残しっぱなしはセキュリティ上のリスクになります。
また、ApacheとPHP-FPM、nginxとPHP-FPMといった構成では、設定を切り替えたあとにサービスの再起動を忘れるだけで旧バージョンが動き続けることがあります。設定変更後は、コマンドとphpinfoの両方で“同じバージョンが表示されているか”までセットで確認するのが、現場での鉄板パターンです。
どこまで上げるべきか迷わない、PHPバージョンおすすめと選び方の成功パターン
WordPressサイト運営ならどのPHPバージョンが推奨か、バージョンアップの限界ラインとは
WordPress運営で迷いやすいのは「どこまで攻めて上げていいか」です。私の視点で言いますと、テーマとプラグインが“今も更新されているか”が限界ラインを決める最大要因になります。
ざっくり整理すると次のイメージです。
| 状況 | おすすめ方針 | リスク |
|---|---|---|
| テーマ・プラグインが全て現役で更新中 | コアが対応している範囲で最新寄りを選択 | 軽微な非推奨警告 |
| 有料テーマが数年前で止まっている | 一つ手前の安定版で様子見 | 白画面・機能停止 |
| 独自カスタマイズが多い | まず検証環境で段階アップ | 予期せぬ致命的エラー |
実務では、次の順番で判断すると迷いにくくなります。
- サイトヘルスで推奨バージョンを確認
- テーマと主要プラグインの対応状況を公式サイトで確認
- 検証環境で一段階上のバージョンに切り替え、問い合わせフォームや決済など“お金に直結する動線”を重点テスト
- 問題なければ本番も同じバージョンに合わせる
ここでありがちな失敗は、レンタルサーバー側の自動切替スケジュールを見落とすことです。サーバー会社が「来月に一括アップ」を予定しているのに、保守側がテストを後ろ倒しすると、本番でいきなり白画面になるケースが起きます。通知メールや管理画面のお知らせは必ず確認しておくと安全です。
LaravelやCakePHP・Drupalなど主要フレームワークのPHPバージョン対応表、正しい読み方
フレームワーク利用の場合、フレームワークの対応範囲が“天井”を決めるため、「PHPだけ先に最新へ」が破綻のもとになります。
| 種別 | 見るべきリリース情報 | 実務での読み方 |
|---|---|---|
| Laravel | サポートバージョン一覧 | 自分の系統のLTSとPHP対応範囲をまず確認 |
| CakePHP | リリースノート / ChangeLog | メジャーアップ時のPHP必須バージョンに注意 |
| Drupal | 公式の環境要件ページ | コアと主要モジュールの対応をセットで確認 |
ポイントは、Composerの制約行を見る癖をつけることです。
-
"php": ">=7.4,<8.1"のように記載されていれば、その範囲を超えたPHPに上げた瞬間にインストールや更新が破綻します -
ライブラリ側も同様にPHP要件を持っているため、「フレームワークは対応しているのに、一部ライブラリだけが足を引っ張る」パターンが頻出します
検証環境で composer update を流し、警告や依存関係の衝突をすべて潰してからPHP本体を上げるのが、現場で使われている安全な手順です。
最新だけが正義じゃない、古いままもNG!ビジネスや開発体制から逆算するベストなPHPバージョン選び
技術的な最適解とビジネスの最適解は、必ずしも一致しません。大切なのは、次の3軸で“落としどころ”を決めることです。
-
売上インパクト
ECサイトや会員サイトなど、止まれば即売上に響く場合は、多少古めでも安定重視で一つ手前の安定版を選び、計画的にメジャーアップを進めます。
-
開発体制と保守コスト
社内にエンジニアがいるなら、新機能やパフォーマンス改善を見越して比較的早めに新しいバージョンへ寄せた方が、長期的な改修コストは下がります。運用だけ外注の場合は、「テストをどこまでやるか」を見積りで明文化してもらうと無難です。
-
監査・セキュリティ要件
金融や医療系では、セキュリティサポート終了前に計画的アップを求められるケースが多く、“一部だけ古いPHPを残さない”構成が重要になります。監査でCVEやCVSSスコアを基に指摘されると、まとめてやり直しになるためです。
最終的には、次のような基準表を手元に置いておくと判断しやすくなります。
| 判断軸 | 優先したいゴール | 選び方の目安 |
|---|---|---|
| 安定稼働 | 障害ゼロ | フレームワークやCMSが“十分に検証済み”とする安定版を選ぶ |
| コスト最適化 | 改修費の平準化 | メジャーアップを数年おきではなく、小刻みに実施 |
| セキュリティ | 監査・規約順守 | セキュリティサポート終了前に必ず計画を立てる |
バージョン選びは「今動けばOK」ではなく、「3年後に困らないか」を軸に決めると、結果的に財布にも神経にも優しい運用になります。
PHPバージョンアップの手順と影響調査、プロの“鉄板チェックリスト”で失敗ゼロへ
運営中のサイトを止めずにバージョンアップするコツは、「一気に変えないこと」です。現場では、作業そのものよりも事前準備とロールバック設計の有無で成否が決まります。
PHPバージョンアップ前に必ずやること、バックアップや検証環境・対象洗い出しを徹底
作業前に、次の3点を必ずそろえます。
-
フルバックアップ
ファイル一式とDBを取得し、復元テストを1度は実施します。
-
検証環境の用意
本番をコピーしたステージングを作成し、同じWebサーバー設定・同じ拡張モジュール構成にそろえます。
-
対象の洗い出し
バージョンに依存しやすい部分をリスト化します。
| 区分 | チェック対象 |
|---|---|
| アプリ | CMS本体、テーマ、プラグイン、独自コード |
| インフラ | Webサーバー設定、PHP拡張、cron |
| 外部連携 | 決済、メール、API、バッチ処理 |
私の視点で言いますと、ここを曖昧にした案件ほど「どこが壊れたか分からない地獄」に陥りやすいです。
影響調査で押さえるべきポイント、テーマ・プラグイン・フレームワーク・拡張モジュールの確認
影響調査は「バージョンの対応状況」と「実際の挙動」の二軸で見ます。
-
WordPressや各種CMS
コアの対応バージョンを公式の情報で確認し、テーマとプラグインの更新履歴・最終更新日をチェックします。数年更新されていないものは要注意です。
-
LaravelやCakePHPなどフレームワーク
composer.jsonの要求バージョンを見て、予定しているPHPと矛盾がないか確認します。フレームワークだけ先に上げて、後からPHP制約で詰むパターンが頻発します。
-
拡張モジュール
mbstring、pdo、openssl、imagickなど、現在有効なモジュール一覧を控え、アップ後も同じ機能が提供されるか確認します。セキュリティサポート中かどうかも合わせて見ます。
レンタルサーバー・EC2・オンプレそれぞれの落とし穴とエラー回避ベストパターン
環境別に、つまずきポイントが変わります。
-
レンタルサーバー
管理画面でバージョン切替しただけで白画面になるケースが多いです。ベストは、サブドメインかテスト用ディレクトリで新バージョンを指定し、そこで検証してから本番ドメインを切り替える流れです。
-
EC2などクラウド
OSのライフサイクルとPHPのサポート期限がズレやすく、リポジトリの切替で意図せず違う系統のPHPが入ることがあります。AMIのコピーからステージングを作り、構成管理ツールで同じ状態を再現するのが安全です。
-
オンプレミス
古いミドルウェアと抱き合わせになっていることが多く、単純なVerUPではなく「Webサーバーとセットで更新」が前提になるケースがあります。監査やCVEの指摘内容も踏まえ、影響範囲を書面で整理しておくと社内合意を得やすくなります。
ロールバック戦略でトラブル時も安心、最小限で止める切り戻しの考え方
ロールバックは「どこまで戻すか」を事前に決めておきます。
-
段階を分ける
-
PHP設定だけ戻す
-
バーチャルホスト単位で旧環境へ切替
-
サーバー丸ごとスナップショットから復元
-
判断基準を決める
例として、「500エラーが10分以内に解消できなければ即ロールバック」「売上に直結する機能が落ちたら新バージョンの調査は後回し」など、ビジネス優先のルールを先に決めます。
-
ログの確保
ロールバックしても、エラーログとアクセスログは必ず残します。後から原因を特定しないと、同じ失敗を次回も繰り返してしまいます。
この流れを一度テンプレート化しておくと、次回以降のバージョンアップは「作業」から「ルーチン」に変わり、焦りとは無縁で進められるようになります。
PHPバージョンアップで本当に発生する失敗パターン、その場しのぎではない現場ワザ
「ボタン1つで切り替えた瞬間、サイトが真っ白」
多くの現場で実際に起きているのは、この一行に尽きます。ここでは、その“後悔の30秒”を迎えないためのリアルなパターンと手筋をまとめます。
「白画面」「500エラー」「一部機能だけ停止」PHPバージョンアップ時の典型的トラブル原因
発生しやすいパターンを整理すると、原因のアタリがすぐ付きます。
| 症状 | 典型原因 | 初動で見る場所 |
|---|---|---|
| 真っ白画面 | 古い構文、致命的エラー | エラーログ、display_errors |
| 500エラー | 拡張モジュール不足、.htaccess記述 | Webサーバーログ、モジュール一覧 |
| 特定機能だけ停止 | プラグインやフレームワークの非対応 | 該当機能のログ、変更履歴 |
| 管理画面だけエラー | 管理系プラグインやテーマの不整合 | 管理URLアクセス時のログ |
特に多いのは「PHP7系で動いていた独自プログラムを、8系に上げたら古い書き方が一気にエラー化する」ケースです。
@演算子でエラーを握りつぶしていたコードや、非推奨だった関数が削除されたタイミングで一斉に噴き出します。
ログから原因を最速発見、現場で使えるPHPバージョン問題の絞り込み手順
私の視点で言いますと、“ログを読む順番を決めておくかどうか”が、復旧時間を大きく分けます。
- 発生範囲を切る
- サイト全体か、特定URLか、管理画面だけかを確認します。
- 時刻でログをピンポイントに絞る
- VerUPした時刻前後だけを追うと、ノイズが一気に減ります。
- エラーレベルで優先度をつける
- fatal error、parse error、warning、noticeの順で確認します。
- メッセージに出ている「ファイル名と行番号」から、テーマ・プラグイン・独自コードのどこかを特定します。
- そのファイルが、どの開発元(テーマ作者、プラグイン、社内実装)かを見極めて、誰が修正担当かを即決します。
レンタルサーバーの場合は、コントロールパネルにあるエラーログビューアだけでなく、/logsディレクトリやApache/Nginxの生ログも必ず確認します。アプリ側のエラーとWebサーバーの設定エラーが同時に出ていることも多いからです。
WordPressテーマやプラグインが古い場合、あえてPHPバージョンを上げないという判断基準
「更新したいけれど、制作会社が消えていてテーマもプラグインも何年も放置」という相談は珍しくありません。この場合、無理に最新まで上げると白画面直行コースになりやすいので、段階的な判断が重要です。
-
公式ディレクトリにあるプラグインかどうか
- 更新履歴が最近まで動いていれば、作者の追従も期待できます。
-
テーマが市販テーマかフルスクラッチか
- 市販テーマは対応状況の情報が集めやすく、逆にフルスクラッチはソースを読める人がいないと一気にリスクが上がります。
-
サイトのビジネス重要度
- コーポレートサイトとECサイトでは、許容できるダウンタイムの長さが全く違います。
これらを踏まえ、一時的に“現実的に安全なやや古めのバージョン”で止めておき、テーマ刷新やリニューアルとセットでさらに上げるという二段構えにすることがあります。
「サーバー会社の自動切り替え予定日」と「リニューアルの完了予定日」がずれて炎上するケースも多いため、スケジュール表で事前に並べておくことがポイントです。
フレームワークとPHPバージョンの相性ミス防止、Composer設定で事前対策
LaravelやCakePHP、Drupalなどを使っている場合、フレームワーク本体の対応状況より先に、Composerの設定を見直すことがトラブル防止のカギです。
| チェック項目 | 具体的なポイント |
|---|---|
| composer.jsonのphp指定 | “php”: “>=7.4 <8.2” のように上限が縛られていないか |
| 依存パッケージ | 旧版ライブラリがPHP8系に非対応でないか |
| lockファイル | composer.lockが古い環境で固まっていないか |
| テストコマンド | CIやローカルでphpunitを複数バージョンで回せるか |
本番サーバーのPHPだけを先に上げると、「フレームワークは対応しているのに、周辺ライブラリが非対応で落ちる」という“地味にハマる”事故が増えます。
事前に検証環境で、composer updateを行いながら、想定するPHPバージョンごとにテストを回して確認する運用にしておくと、VerUP当日はほぼ切り替え作業だけで済みます。
VerUPは「ボタンを押す瞬間」より、その前後の設計で9割が決まります。ここを押さえておくと、サポート期限ぎりぎりでも慌てずに進められるようになります。
WordPressとPHPのバージョン更新にまつわる“よくある誤解”Q&Aで不安ゼロに
「WordPressが動いていればPHPバージョンは古くても大丈夫?」危ない思い込みを撃破
管理画面もサイトも普通に表示されていると、「今は困っていないから後回し」で済ませたくなります。ですが、古いバージョンを使い続けるのは、鍵を替えていないオフィスに高級機材を置きっぱなしにするのと同じ状態です。
実務で確認しているリスクは次の通りです。
-
セキュリティサポートが終了した瞬間から、新しいCVEが出ても修正パッチが提供されない
-
脆弱性診断や監査で「要是正」と判定され、取引先から改善を求められる
-
レンタルサーバー側の強制切替で、ある日突然WordPressが白画面になる
特にレンタルサーバーでは、複数の契約を一括でVerUPするスケジュールが組まれることが多く、ユーザーのテスト計画とズレたタイミングで自動更新されるケースが目立ちます。「今は動いているか」ではなく「今後も安全に動き続けるか」を基準に考えることが重要です。
主な危険サインを整理すると次のようになります。
| 状況 | すぐ対応が必要か | 現場でよくある問題 |
|---|---|---|
| サポート期限が既に終了 | 高 | 脆弱性指摘、ホスティング側の強制変更 |
| WordPressが警告を表示 | 中〜高 | プラグイン非対応で白画面リスク |
| まだサポート中だが古め | 中 | 新機能や高速化の恩恵を受けられない |
「PHP8へアップデートすればすべて速く安全になる?」盲点となる落とし穴
高速化やセキュリティ強化の観点から、最新寄りのバージョンが推奨される流れ自体は妥当です。ただし、「上げた瞬間にすべて解決」はまずありません。私の視点で言いますと、トラブルの多くは「アプリ側の準備不足」が原因です。
代表的な落とし穴は次の3つです。
-
テーマやプラグインが古く、非推奨関数の廃止でFatal errorが発生
-
独自開発したプログラムが型の厳格化に追いついておらず、特定機能だけ500エラー
-
Composerで制御しているライブラリが古く、php本体だけ上げて依存関係が破綻
特に、WordPressの有料テーマや古いプラグインは、開発が止まっているケースがあり、最新バージョンに対応していないことが少なくありません。「上げる前に、何が対応していて、何が対応していないか」を一覧にしておくことが、スムーズな更新の鍵になります。
「PHPの更新が必要」と出た時に、今日・今週・今年やるべきことの優先順位を整理
警告を見た瞬間に慌ててVerUPボタンを押すと、白画面まっしぐらです。現場では、次の三段階で整理すると安全に進めやすくなります。
【今日やること】
-
サーバーの管理画面やWordPressのサイトヘルスで現在のバージョンとサポート期限を確認
-
利用中のテーマ、プラグイン、外部サービス(決済、会員管理など)をリスト化
-
フロントだけでなく管理画面や予約・問い合わせフォームなど、止まると困る機能を書き出す
【今週やること】
-
ステージング環境やテスト用サブドメインを用意し、そちらで先にVerUPして動作確認
-
主要な画面(トップ、投稿詳細、問い合わせ、決済フロー)ごとにチェックシナリオを作る
-
ログの保存場所と見方(error_log、Webサーバーのログ)を事前に確認
【今年やること】
-
OSやWebサーバー、データベースを含めたライフサイクルを整理し、「何年ごとにどこを更新するか」の方針を決める
-
レンタルサーバーからクラウド環境への移行や、フレームワーク更新との同時検討で、将来の大規模改修を見据える
-
保守を任せる会社がある場合は、VerUPのテスト範囲とロールバック条件を契約レベルで明文化
この優先順位を押さえておくと、警告に振り回されるのではなく、自分のペースで安全にアップデート計画を組み立てられる状態になります。WordPressの更新に追われる側から、運用をコントロールする側に回るイメージで進めていきましょう。
自力か外注かで迷わない、PHPバージョンアップを任せる時の見積りと依頼のコツ
サーバー会社から更新メールが来て、WordPressの管理画面にも警告が出ている。ここで判断を誤ると、予算もサイトも一気に燃え上がります。ポイントは「作業範囲を言語化してから見積りを取る」ことです。
レンタルサーバー設定だけで済む場合と、アプリ改修が必須なパターンの見極め基準
まず、次の3点をざっくり切り分けます。
-
レンタルサーバーの管理画面でバージョン切替ができるか
-
WordPressやCMSが最新版に近いか
-
独自開発のプログラムが入っているか
目安を表にまとめます。
| 状況 | 典型パターン | 必要な対応 |
|---|---|---|
| 設定だけで済む | 最新に近いWordPress+現行テーマ+主要プラグインのみ | レンタルサーバーのバージョン切替+動作確認 |
| グレーゾーン | 古いテーマ・プラグイン、EC系拡張、フォーム自作 | 事前テスト+一部修正の可能性 |
| 改修必須候補 | 独自フレームワーク、古いPHP5系コード、謎の自作管理画面 | コード調査+改修前提の見積り |
私の視点で言いますと、「謎の自作機能があるのに“切り替えて様子見”をやりたがる案件」が一番危険です。セキュリティサポートの終了に追われても、調査なしの一発切替は博打と考えた方が安全です。
PHPバージョンアップ費用の相場感、金額より大事な「テスト範囲」の確認ポイント
費用は作業内容で大きく変わりますが、感覚的には次のように整理できます。
| 作業タイプ | 内容イメージ | 金額より先に確認すべきポイント |
|---|---|---|
| 設定変更のみ | レンタルサーバーの切替と簡易チェック | どこまで画面と機能を開いて確認するか |
| 軽微な改修込み | テーマ・プラグインのアップデート、軽い警告対応 | どのプラグインまで対象に含むか、ログ確認の有無 |
| 本格改修 | 独自システムの修正、テストシナリオ作成 | 仕様理解の範囲、テスト項目とロールバック手順 |
見積もりで必ず見るべきなのは「テスト」の行数です。
時間単価より、次の内容が書かれているかを優先してチェックすると失敗しにくくなります。
-
対象環境(本番・ステージング)とテスト手順の有無
-
フォーム送信、決済、会員機能など売上直結機能の検証が明記されているか
-
不具合発生時に、どこまで調査・復旧を含むか
「安いけれどテストは“目視でざっと”のみ」という見積りは、障害対応を後払いにしているだけと捉えた方が健全です。
保守会社や制作会社に依頼するなら事前にまとめる情報と必ず聞くべき質問リスト
依頼前に、次の情報を1枚のドキュメントにまとめておくと、見積りの精度とスピードが一気に上がります。
-
使用中のレンタルサーバー名とプラン
-
管理画面から見た現在のPHPとWordPressのバージョン
-
使用テーマ名と主なプラグイン一覧(有料か無料かも)
-
独自開発部分の有無(会員制、予約、EC、API連携など)
-
直近6〜12カ月に行った大きな更新内容
そのうえで、打ち合わせで必ず聞きたい質問は次の通りです。
-
どのPHPバージョンへの更新を想定しているか、その理由は何か
-
事前テストはどの環境で、誰が、どの範囲まで行うか
-
不具合が出た時のロールバック手順と、復旧までの対応時間の目安
-
プラグインやテーマが更新停止の場合、代替案や将来の運用方針をどう提案してくれるか
-
次のサポート期限まで、どのくらいの周期で見直しが必要と考えているか
このあたりを具体的に説明してくれる会社は、単発のVerUP作業ではなく、ライフサイクル全体を視野に入れたパートナーになりやすい相手です。逆に「とりあえず最新にしておきます」で終わる回答しか返ってこない場合は、見積り金額が安くても慎重に検討した方が安全です。
PHPバージョン運用で「数年先まで安心」を確保する長期戦略とプロの視点
目先のエラーを消すだけの対応から抜け出して、数年先の「何も起きない安心」を設計図レベルで作り込むのが、本気の運用です。
OS・ミドルウェア・フレームワークも含めたライフサイクル設計という新常識
長期戦略では、PHPだけを見ても安全にはなりません。実務では次の4層を一枚の表で管理します。
| 層 | 代表例 | 確認すべきポイント |
|---|---|---|
| OS | Linux, Windows | サポート期限、パッケージ提供状況 |
| ミドルウェア | Apache, Nginx, DB | PHPモジュールの対応、サポートポリシー |
| PHP本体 | php-fpm, cli | サポート期限、セキュリティサポート有無 |
| アプリ | WordPress, Laravel | 対応バージョン、リリース頻度 |
特にレンタルサーバーやVPSでは、「会社側の自動VerUPスケジュール」と「自社のテスト計画」がズレると、予告なしにVerUPされて白画面になるケースが目立ちます。ライフサイクル設計では、ホスティング会社のPHPサポート方針を必ず事前に確認し、OSとアプリの更新サイクルを合わせることが肝になります。
定期的なPHPバージョン見直しタイミングと、自社用のチェックリストの作り方
私の視点で言いますと、PHPの見直しタイミングは「警告が出たら」ではなく「年2回の棚卸し」が最も事故が少ないです。具体的には次のようなチェックリストを自社用にカスタマイズするとよいです。
-
現在のPHPバージョンとサポート期限を確認
-
OS・Webサーバー・DBのサポート期限を一覧化
-
利用しているCMS・フレームワークの対応バージョンを確認
-
WordPressの場合はテーマ・プラグインの最終更新日を確認
-
レンタルサーバーの自動アップデート有無とスケジュールを確認
-
影響調査とテストに使える人員・期間を明文化
-
バックアップとロールバック手順をドキュメント化
ポイントは、「誰が見ても同じ判断になるチェック項目」に落とし込むことです。属人的な判断を排除することで、担当者が変わっても安定したVer管理ができます。
日々の小さなPHPバージョン更新が、大規模リプレイスとセキュリティ事故の予防線
大きなトラブルを起こす現場ほど、5年以上VerUPを止めてから一気に上げようとします。その結果、PHPだけでなくフレームワーク、ライブラリ、DB、テーマまで一斉に更新が必要になり、ほぼ新規開発と同等の工数になってしまいます。
逆に、日々の小さな更新を積み重ねると次のメリットがあります。
-
マイナーVerUPごとに差分が小さいため、テスト範囲を限定しやすい
-
セキュリティサポート終了前に余裕を持って移行できる
-
不具合発生時も「どのアップデートが原因か」を特定しやすい
-
会計上も、突発的な大規模リプレイス費用を避けやすい
レンタルサーバーの管理画面やComposerの更新履歴を「月1で確認する」だけでも、リスクプロファイルは大きく変わります。小さなVerUPを計画的にこなすことが、大規模リプレイスとCVE・CVSSレベルのセキュリティ事故を遠ざける、一番地味で一番効く予防線になります。
この記事を書いた理由
著者 – 宇井 和朗(株式会社アシスト 代表)
ホームページの制作や運用に関わっていると、「サイトは普通に表示されているのに、ある日突然白画面になった」「サーバー会社のPHP自動切替のあとだけ問合せフォームだけ動かない」といった相談が継続的に届きます。とくにWordPressや各種フレームワークを使ったサイトでは、PHPバージョンをきちんと把握していないことが原因のトラブルが目立ちます。
私自身、経営者として自社サービス群のインフラを管理する中で、古いPHPを放置した結果、セキュリティポリシー変更への対応が後手に回り、全体の改善コストが想定の数倍に膨らんだことがあります。さらに、支援してきた多くの企業でも、制作会社任せでPHPのサポート期限を誰も追えておらず、サーバー更改のタイミングで慌てて移行計画を立てるケースが後を絶ちませんでした。
こうした状況を減らすには、「どのバージョンを選ぶか」「どう安全に上げるか」を、経営と現場の両方が同じ目線で判断できる整理が必要だと痛感しています。この記事では、レンタルサーバーからオンプレまでを横断してきた経験を前提に、実際に多くの会社でつまずいたポイントを一連の流れで解消できるようにまとめました。PHPバージョンの更新を「怖い作業」ではなく、「数年先までの事業を守る定期メンテナンス」として捉え直すきっかけになればうれしく思います。