2026年10月21日に修正版が出たPHPの重大な脆弱性(通称PHP2Shell)は、PHPを使ってWebページを返しているサーバーのほぼすべてが対象です。自分のサイトが影響を受けるかどうかは、使っているPHPのバージョンを見ればわかります。
PHPは、Webサイトの裏側でページを組み立てるプログラミング言語です。WordPressで作ったサイトは、ほぼ確実にPHPで動いています。
この記事では、PHPのバージョンを確かめる手順を、サイトの持ち方ごとに順に紹介します。何が起きたのかの全体像は、別の記事にまとめています。
手順1 持っているサイトを全部書き出す
最初にやるのは、PHPのバージョンを見ることではなく、自分が持っているサイトを書き出すことです。
本体のサイトだけでなく、昔のキャンペーンサイト、採用サイト、問い合わせフォームだけ別に置いているサイト、テスト用に作って放置しているサイト。私は今回これをやって、存在を忘れていたサイトを1つ見つけました。忘れているサイトほど、古いPHPのまま残っています。
米国のCISAも、注意喚起の最初の項目に、PHPを動かしているシステムの棚卸しを挙げています。PHPは別のソフトの部品として入っていることもあり、気づきにくいからです。
書き出したら、それぞれのサイトがどの持ち方かを分けます。WordPressで作ったサイトは手順2、毎月レンタルサーバー代を払っているサイトは手順3、社内のエンジニアがサーバーを管理しているサイトは手順4です。サイトの管理を制作会社や保守会社に任せている場合は、この記事の確認をその会社に依頼し、PHPのバージョンと、修正版を当てた日時を返事でもらってください。
手順2 WordPressなら、管理画面で確かめる
WordPressのサイトなら、管理画面からPHPのバージョンを確かめられます。
「ツール」から「サイトヘルス」を開き、「情報」のタブにある「サーバー」の項目を開きます。そこに「PHPのバージョン」が表示されます。8.3.36のように、ピリオドで区切られた3つの数字まで確かめてください。8.3だけでは判断できません。
WordPressの公式サイトでは、PHP 8.3以上が推奨されています。
手順3 レンタルサーバーなら、管理画面とお知らせを確かめる
レンタルサーバーを使っている場合、PHPの本体を更新するのは、基本的にレンタルサーバーの会社です。
管理画面の「PHPのバージョン設定」のような画面で、サイトに割り当てているPHPのバージョンを確かめます。あわせて、レンタルサーバーの会社のお知らせで、修正を適用したかどうかを確かめてください。大手の各社は、21日の夜から22日にかけて修正の適用を告知しています。
注意したいのは、管理画面で古いPHPのバージョン、たとえば8.1や7.4を選んでいる場合です。PHPの公式には古い系統の修正版がありません。エックスサーバーやさくらインターネットのように、古い系統にも独自に修正を当てた会社もありますが、すべての会社がそうとは限りません。古いバージョンを選んでいるなら、その版にも修正が当たったかを会社の告知で確かめてください。
手順4 自分で管理するサーバーなら、コマンドで確かめる
VPS(サーバーを1台まるごと借りて、自分で管理する契約)やクラウドのサーバーを自分で管理している場合は、サーバーにログインして確かめます。
php -v
ただし、このコマンドで出るのは、コマンドを打つときに使うPHPのバージョンです。Webページを返しているPHPとは別のバージョンが入っていることがあります。確実なのは、Webサーバー側で動いているPHPのバージョンも確かめることです。PHPの動かし方には、Webサーバーとは別のプログラムとして動かすPHP-FPMと、Webサーバーのソフトの1つであるApacheに組み込むmod_phpがあります。
php-fpm -v
php-fpmの部分は、環境によって php-fpm8.3 のような名前になっています。
Apacheに組み込む方式(mod_php)の場合は、このコマンドでは確かめられません。パッケージの一覧で、Apache用のPHPのパッケージのバージョンを確かめます。Debian系なら dpkg -l 'libapache2-mod-php*'、Red Hat系なら rpm -q php です。
手順5 修正版かどうかを見分ける
確かめたPHPのバージョンを、次の修正版と比べます。8.3.36のうち、最初の2つの数字(8.3)を「系統」と呼びます。系統が同じなら、後ろの数字が大きいほど新しい版です。
使っている系統 | 修正版 |
|---|---|
8.5 | 8.5.12以降 |
8.4 | 8.4.27以降 |
8.3 | 8.3.36以降 |
8.2 | 8.2.35以降 |
8.1以前 | 公式の修正版なし |
たとえば8.3.30なら修正前、8.3.36なら修正済みです。8.1以前のPHPのバージョンには、公式の修正版が出ていません。この場合の考え方は別の記事に書きました。
UbuntuやRed Hatなど、Linuxを配布している組織(ディストリビューション)が用意したPHPを使っている場合は、番号が上の表と違っていても、ディストリビューション側で修正が入っていることがあります。各ディストリビューションのセキュリティ情報で確かめてください。
修正前だったら
修正前のPHPのバージョンだったら、まず更新です。レンタルサーバーなら会社の対応を確かめ、自分の管理なら修正版に更新して、PHP-FPMやApacheを再起動します。再起動しないと、古いプログラムが動き続けます。
すぐに更新できない場合の一時的な設定は、別の記事にまとめました。ただし、PHPの公式発表は、設定の変更では守り切れないとしています。
PHPのバージョンを確かめるのは5分で済みます。まずは手順1の書き出しから始めてください。





