PHP 7.4/8.1のまま更新できないサイトはどうする?PHP2Shellで考える4つの選択肢

PHP 7.4/8.1のまま更新できないサイトはどうする?PHP2Shellで考える4つの選択肢

この記事を約4分で解説

音声:VOICEVOX:ずんだもん

2026年10月21日、PHPの重大な脆弱性「PHP2Shell」(CVE-2026-109618/CVE-2026-109619)の修正版が公開されました。ところが、修正版が出たのはサポート中のPHP 8.2〜8.5だけです。サポートが終了したPHP 8.1以前には、PHP公式の修正版リリースはありません。

一方で、「プラグインやテーマが古くて、PHPを上げるとサイトが動かなくなる」「システムを作った会社と連絡が取れない」といった理由で、PHP 7.4や8.1のまま動いているサイトやシステムは少なくありません。脆弱性を報告したWizによると、PHP 5.4以降のほぼすべてのバージョンが、いずれかの脆弱性の影響を受けます。

この記事では、古いPHPのまま更新できないサイトやシステムで取れる4つの選択肢と、主なレンタルサーバーやLinuxの対応状況、どれを選ぶかの目安を整理します。

この記事は2026年10月28日時点の公開情報をもとに作成しています。サーバー会社やOSの対応状況は日々変わるため、必ず各社の最新のお知らせもご確認ください。

まず結論:古いPHPを使っている場合の4つの選択肢

選択肢内容向いているケース
1. サーバー会社・OSの修正を使う古いPHPに独自の修正を当ててもらうレンタルサーバーや、修正が出ているLinuxを使っている
2. 有償の延長サポートを使う古いPHP向けの修正版を有償で受け取る自社サーバーで、すぐには移行できない
3. バージョンアップ・移行するPHP 8.3以降に上げる。必要ならシステムも移行今後も長く使うサイト・システム
4. 公開を止める・縮小する外部からのアクセスを遮断、または廃止1〜3がどれも難しい

大切なのは、1と2は「時間稼ぎ」であり、3が根本的な解決だということです。古いPHPに今回の修正が当たっても、来年以降に新しい脆弱性が見つかったときに修正が届く保証はありません。1や2で今回をしのぎつつ、3の計画を並行して進めるのが現実的です。

「PHPを上げたいけれど、サイトが壊れないか不安」という方へ
C-TechLabでは、古いPHPで動くサイトの調査から、バージョンアップ・移行の作業まで代行しています。初回のご相談は無料です。

無料で相談する →

なぜPHP 8.1以前には修正版が出ないのか

PHPには、バージョンごとに公式のサポート期限があります。期限が過ぎると、脆弱性が見つかっても修正版は提供されません。PHP 8.1は2025年12月31日でサポートが終了しています(各バージョンのサポート期限は「PHP 8.2のサポート終了は2026年12月31日」で一覧にしています)。

今回は深刻度が高いため、PHP公式は例外的に、PHP 7.4/8.0/8.1向けに最小限の修正コードを公開しました。ただし、これはPHPを自分でソースコードから組み立てている人や、修正を提供してくれる事業者がいない人向けのものです。正式なバージョンとしてリリースされたものではなく、内容も最小限の緩和策にとどまります。

一般のサイト運営者が、この修正コードを使って自分でPHPを組み立てるのは現実的ではありません。そこで、次の4つの選択肢から考えることになります。

選択肢1:サーバー会社・OSの修正を使う

レンタルサーバーの場合

国内の主なレンタルサーバーは、サポートが終了した古いPHPにも、独自に修正を当てています。各社の告知(10月22〜24日時点)をまとめると、次のとおりです。

サーバー会社古いPHPへの対応
エックスサーバーPHP 5.6〜8.5は10月22日までに全サーバーで修正済み。5.1〜5.5も順次適用
さくらのレンタルサーバサポート終了版を含む提供中のPHPに修正を適用
ロリポップ!8.2〜8.5は修正版、7.4〜8.1はPHP公式の修正コード、5.3〜7.3は自社作成の修正を適用。全バージョンでアップロード進捗機能を無効化
ConoHa WING/お名前.com レンタルサーバー提供中の全PHPに修正を適用
CPI修正版があるバージョンは対応済み。修正のない古いバージョンは緩和策の案内にとどまり、実施は利用者側

ポイントは次の2つです。

  • バージョン番号は変わらないことが多い:管理画面やWordPressのサイトヘルスに「7.4.33」などと表示されていても、サーバー会社側で修正済みの場合があります。番号だけでなく、サーバー会社のお知らせで確認してください
  • 会社によって対応の範囲が違う:同じ「古いPHP」でも、修正が当たっているかどうかは会社やバージョンによって異なります。上の表にない会社を使っている場合は、お知らせを確認するか、問い合わせましょう(問い合わせの文例は「PHPの対応を制作会社・サーバー会社に依頼するときの文例テンプレート」)

新しいPHPに切り替える場合の各社の手順は「レンタルサーバー別・PHPバージョンの変更手順」、切り替えて不具合が出たときの対処は「PHPを上げたらWordPressサイトが壊れたときの対処法」で解説しています。

VPS・クラウド・自社サーバーの場合

自分でサーバーを管理している場合は、使っているLinuxのディストリビューションやPHPの入手元によって、修正の有無が分かれます。主な状況は次のとおりです。

環境古いPHPへの修正
Ubuntu 22.04(PHP 8.1)標準パッケージで修正あり
Ubuntu 20.04(PHP 7.4)Ubuntu Pro(ESM)を有効にすれば修正あり
Red Hat Enterprise Linux 8/9RHEL 8のphp:7.4、RHEL 9の標準のphp 8.0に修正あり
AlmaLinux 8/9Red Hatの修正に加え、EL8のphp 7.2/7.3/8.0、EL9のphp 8.1にも独自の修正を提供
Debian 11(PHP 7.4)通常のサポートは終了。有償のELTS(Freexian)で修正あり
Amazon Linux 2の標準のphp、Amazon Linux 2023のphp8.1修正なし
CentOS 7OS自体のサポートが終了しており、修正は届かない見込み
ppa:ondrej/php(Ubuntu向け)PHP 5.6〜8.1にも修正を提供
cPanel/PleskPHP 7.4〜8.1に修正。それより古いバージョンは修正なし

修正が出ている環境では、パッケージを更新したあと、PHP-FPMやApacheを必ず再起動してください。再起動しないと、古いプログラムのまま動き続けます。

修正が出ていない環境(Amazon Linux 2の標準のPHP、CentOS 7など)は、選択肢2〜4を検討する必要があります。

選択肢2:有償の延長サポートを使う

公式のサポートが終わったPHPに、修正版を有償で提供しているサービスがあります。

  • TuxCare「Endless Lifecycle Support」:PHP 5.x〜8.1向けにPHP2Shellの修正版を提供。いつものパッケージ管理ツールで更新できます
  • Zend(Perforce)の長期サポート版PHP:PHP 7.2〜8.1の長期サポート版に、修正版の公開と同時に対応
  • Freexian「ELTS」:Debianの古いバージョン向けに、PHP 7.4などの修正を提供

いずれも費用がかかり、主にVPSや自社サーバーで運用している企業向けです。移行までの期間を安全につなぐための手段と考えるのがよいでしょう。

選択肢3:PHPのバージョンアップ・システムの移行

根本的な解決は、サポート中のPHPに上げることです。今から上げるなら、PHP 8.3以降をおすすめします(PHP 8.2も2026年12月31日でサポートが終了するため)。

ただし、古いPHPで動いているサイトほど、バージョンアップは簡単ではありません。

  • WordPressの場合:本体・テーマ・プラグインを最新にしたうえで、PHPを切り替えます。長年更新していないテーマやプラグインは、新しいPHPで動かないことがあります。手順は「PHP 8.2のサポート終了は2026年12月31日。WordPressサイトをPHP 8.3/8.4へ移行する手順と注意点」で解説しています
  • EC-CUBEの場合:EC-CUBE 4.2以前は、公式に対応しているPHPが8.1以前です。PHPだけを上げるのではなく、EC-CUBE 4.3系への移行が必要になります(詳しくは「PHP2ShellはWordPressだけの問題ではない」をご覧ください)
  • 自社開発のシステムの場合:プログラムの修正が必要になることがあります。開発会社と相談し、テスト環境で動作を確かめてから切り替えます

どのケースでも、バックアップ → テスト環境での確認 → 本番の切り替え → 動作確認の順番で進めるのが安全です。

選択肢4:公開を止める・機能を縮小する

1〜3がどれも難しい場合は、公開を止めることも選択肢になります。IPAも、すぐに更新できず有効な暫定策もとれない場合は、外部からのアクセス遮断やサービスの一時停止を判断材料にするよう案内しています。

  • 社内だけで使うシステムなら、外部からのアクセスを遮断し、社内ネットワークやVPNからだけ使えるようにする
  • ほとんど更新していない古いキャンペーンサイトなどは、この機会に公開を終了する
  • 問い合わせフォームなど、PHPが必要な機能だけを外部サービスに置き換え、サイト本体は静的なページにする

なお、CMSの「メンテナンスモード」では攻撃を防げません。メンテナンスモードもPHPが動いたうえで画面を表示する仕組みのため、止めるならサーバーやCDNの設定で、PHPに届く前にアクセスを遮断する必要があります。

判断するまでの間にやっておきたい暫定策

どの選択肢を取るか決めるまでの間も、脆弱な状態のまま放置するのは危険です。VPSや自社サーバーで設定を変更できる場合は、PHP公式が案内している緩和策を検討してください。

  • session.upload_progress.enabled=0(ファイルアップロードの進捗を記録する機能の無効化)
  • post_max_size を小さくする(ファイルのアップロードが不要なら8M、必要なら32M程度)
  • Webサーバーやプロキシ側で、受け付けるリクエストの大きさを制限する

設定は php.ini などに書き、PHP-FPMやApacheを再起動してください。.user.ini やプログラム内の ini_set() では効果がありません。ただし、これらは特定の攻撃経路をふさぐだけで、完全な対策ではありません。

WAF(Webアプリケーションファイアウォール)も補助にはなりますが、検査できるデータの大きさに上限があるなど、すり抜けられる可能性が指摘されています。WAFだけに頼らず、1〜4のいずれかを必ず進めてください。

どれを選ぶ?判断の目安

状況おすすめの進め方
レンタルサーバーで、サーバー会社が修正済み今回はひとまず安心。年内を目安にPHP 8.3以降への切り替えを計画
レンタルサーバーで、修正が当たっていないサーバーの管理画面からPHP 8.3以降に切り替え。動かない場合は移行や公開停止を検討
VPS・自社サーバーで、OSの修正が出ているすぐに更新して再起動。あわせてバージョンアップを計画
VPS・自社サーバーで、OSの修正が出ていない暫定策をとったうえで、延長サポートの導入かバージョンアップを急ぐ。難しければアクセス遮断
誰が管理しているか分からないまずサーバー会社・制作会社・保守会社に連絡を取り、管理者をはっきりさせる

IPAは、修正対応が難しい場合の進め方として、システムの役割や更新の難しさを把握したうえで、管理担当者だけでなく、事業責任者や経営層も含めて、更新・移行に必要な人員や予算、保守体制を確保できるかを判断するよう呼びかけています。維持していく見通しが立たない場合は、移行や機能の縮小、公開終了も含めて検討することになります。

「古いPHPのまま動いている」ことは、今回だけでなく、これからも同じ問題が起きるたびに対応が難しくなるということです。今回をきっかけに、サイトやシステムを今後どうしていくかを決めておきましょう。

C-TechLabにできること

C-TechLabでは、古いPHPで動くWebサイトやシステムの調査から、バージョンアップ・移行までをお引き受けしています。

  • 現状の調査:サイトが何で動いているか、PHPのバージョンや修正の有無、新しいPHPで動かない部分を調べます
  • PHPバージョンアップ対応:プラグインやテーマ、プログラムの対応状況を確認し、バックアップを取ったうえでPHPを切り替えます
  • システムの移行:EC-CUBE 4.3系への移行や、古いシステムの作り直し・静的サイト化のご相談に乗ります
  • 月額の運用保守:PHPやCMSの更新を継続して行い、次に同じような問題が起きたときもすばやく対応します

「制作会社と連絡が取れない」「どこから手をつければいいか分からない」という段階でも大丈夫です。代表エンジニアが直接、状況を伺います。詳しくはホームページ運用保守・バージョンアップのページもご覧ください。

よくある質問

PHP 7.4や8.1にもPHP2Shellの修正版はありますか?

PHP公式の修正版リリースはありません。PHP公式はPHP 7.4、8.0、8.1向けに最小限の修正コードを公開していますが、自分でPHPを組み立てる人向けのものです。実際には、レンタルサーバー会社やLinuxのディストリビューション、有償の延長サポートが、古いPHPに独自の修正を提供している場合があります。

レンタルサーバーでPHP 7.4を使っています。何をすればいいですか?

まずサーバー会社のお知らせで、PHP 7.4に修正が当たっているかを確認してください。エックスサーバー、さくらのレンタルサーバ、ロリポップ!などは古いPHPにも修正を適用していますが、バージョン番号は変わらないことが多いです。修正済みであっても、今後の脆弱性に備えて、PHP 8.3以降への切り替えを計画してください。

古いPHPに修正が当たっていれば、そのまま使い続けても大丈夫ですか?

今回の脆弱性への対策はできていますが、長く使い続けるのはおすすめできません。サポートが終了したPHPは、今後新しい脆弱性が見つかったときに修正が届く保証がないためです。今回の修正は時間稼ぎと考え、PHP 8.3以降へのバージョンアップやシステムの移行を並行して進めてください。

PHPを上げるとサイトが動かなくなりそうです。どうすればいいですか?

まずバックアップを取り、テスト環境で新しいPHPでの動作を確認するのが安全です。動かない原因が古いプラグインやテーマ、独自のプログラムにある場合は、それらの更新や修正、置き換えが必要になります。自社での対応が難しい場合は、制作会社や保守会社に相談してください。

修正も移行もすぐには難しい場合はどうすればいいですか?

PHP公式が案内している緩和策(session.upload_progress.enabled=0、post_max_sizeの引き下げなど)を行ったうえで、外部からのアクセス制限を検討してください。それも難しい場合は、IPAが案内しているように、外部からのアクセス遮断やサービスの一時停止も判断材料になります。CMSのメンテナンスモードでは攻撃を防げない点に注意してください。

参考情報