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の書き出しから始めてください。