はじめに
PHP 8.1のセキュリティサポートが2025年12月31日に終了します。
当初は2024年11月終了予定でしたが、RFCにより1年延長されました。しかし、その延長期間も残りわずか。年末年始を挟むため、実質的な対応期限は今すぐです。
この記事では、PHP 8.1からの移行について、社内SE向けに解説します。

一部のホスティング業者では強制アップグレードが始まっています。まだ確認していない方は今すぐチェックを⚠️
PHP 8.1 サポート終了の概要
サポート期限
| サポート種別 | 終了日 | 状況 |
|---|---|---|
| アクティブサポート | 2023年11月25日 | 終了済み |
| セキュリティサポート | 2025年12月31日 | あと2週間 |
2024年3月に承認されたRFCにより、セキュリティサポート期間が従来の1年から2年に延長されました。これによりPHP 8.1以降はリリースから4年間のサポートとなり、終了日も12月31日に統一されています。
EOL後のリスク
- セキュリティパッチが提供されない:新たな脆弱性が発見されても修正されない
- 攻撃者の標的になりやすい:EOLバージョンは修正が来ないことを攻撃者も知っている
- コンプライアンス違反:PCI DSS、GDPRなどの監査で指摘される可能性
- サイバー保険の無効化:EOLソフトウェアの使用で保険が適用されないケースも
移行先の選択肢
PHP 8.1からの移行先は3つの選択肢があります。
| バージョン | リリース日 | EOL | 推奨度 |
|---|---|---|---|
| PHP 8.2 | 2022年12月 | 2026年12月31日 | △ 1年後に再移行が必要 |
| PHP 8.3 | 2023年11月 | 2027年12月31日 | ○ バランスが良い |
| PHP 8.4 | 2024年11月 | 2028年12月31日 | ◎ 長期運用向け |
推奨:PHP 8.3またはPHP 8.4への移行がおすすめです。PHP 8.2は1年後にまたEOLを迎えるため、移行の手間を考えると8.3以上を選ぶ方が効率的です。
各バージョンの主な変更点
PHP 8.2の変更点
- readonlyクラスのサポート
- 動的プロパティの非推奨化(警告が出る)
utf8_encode()/utf8_decode()の非推奨化
PHP 8.3の変更点
json_validate()関数の追加- クラス定数の型付け
#[\Override]アトリビュートの追加utf8_encode()/utf8_decode()の削除
PHP 8.4の変更点
- プロパティフック
- 非対称可視性
newを括弧なしでメソッドチェーン可能にmysqli_ping()の非推奨化

utf8_encode()を使っているコードは8.3で動かなくなります。mb_convert_encoding()への置き換えが必要です💡
レンタルサーバー・ホスティングの対応状況
ホスティング業者によって対応が異なります。事前に確認が必要です。
主要サービスの対応
| サービス | 対応 |
|---|---|
| さくらのレンタルサーバ | 非推奨だが提供継続(自己責任) |
| アルファメール | 提供終了予定 |
| 一部のWordPressホスティング | PHP 8.4への強制アップグレード |
さくらのレンタルサーバーは「非推奨」として提供を続ける方針ですが、セキュリティリスクは利用者の自己責任となります。一方、アルファメールのように提供自体を終了するサービスもあります。
WordPressホスティングでは強制アップグレードも
一部のWordPress専用ホスティングでは、EOLに合わせてPHP 8.4への強制アップグレードが実施されています。互換性テストをしていないと、突然サイトが動かなくなる可能性があります。
OSのバックポート対応
一部のOSでは、EOL後もセキュリティパッチがバックポートされる場合があります。
| OS | PHP 8.1のバックポート |
|---|---|
| RHEL 9 | 2025年5月で終了(PHP公式より早い) |
| Amazon Linux 2023 | 2025年12月まで(PHP公式と同じ) |
| Ubuntu 22.04 LTS | OSのサポート期間中は継続 |
ただし、バックポートは「重大な脆弱性のみ」が対象であり、すべての修正が適用されるわけではありません。本番環境では公式サポート中のバージョンを使用することを推奨します。
互換性の確認ポイント
1. WordPressサイトの場合
WordPress本体は最新版であればPHP 8.3/8.4に対応しています。問題になりやすいのはプラグインとテーマです。
確認事項
- プラグイン・テーマが1年以上更新されていないものはないか
- PHP 8.3/8.4対応を明記しているか
- 開発が終了したプラグインを使用していないか
テスト方法
- ステージング環境を用意
- PHPバージョンを8.3または8.4に変更
- 全ページを表示確認(エラーログも確認)
- フォーム送信、決済処理など動的機能のテスト
2. 独自開発アプリケーションの場合
特に注意が必要なコード
utf8_encode()/utf8_decode()の使用(8.3で削除)- 動的プロパティの使用(8.2で警告、将来エラーに)
mysqli_ping()の使用(8.4で非推奨)${var}形式の文字列展開(8.2で非推奨)
utf8_encode() の置き換え例
// 変更前(PHP 8.3でエラー)
$utf8 = utf8_encode($latin1_string);
// 変更後
$utf8 = mb_convert_encoding($latin1_string, 'UTF-8', 'ISO-8859-1');
3. 古いCMS・パッケージの場合
以下のような古いシステムを使用している場合は、PHP 8.3以上への移行が困難な場合があります。
- EC-CUBE 2.x系
- 古いバージョンのOpenPNE
- PukiWiki 1.5.4未満
- 長期間更新されていないWordPressプラグイン
この場合は、システム自体のリプレイスを検討する必要があります。

古いCMSを使い続けている場合、PHP移行を機にシステム刷新を検討するのも手です📝
今すぐやるべきこと
年末まで2週間。以下の順で確認・対応を進めてください。
1. PHPバージョンの確認
まず、現在使用しているPHPバージョンを確認します。
php -v
または、PHPファイルに以下を記述してブラウザでアクセス:
<?php phpinfo(); ?>
2. ホスティング業者の方針確認
利用しているホスティングサービスのPHP 8.1対応方針を確認します。強制アップグレードの予定があるかも確認してください。
3. テスト環境での動作確認
本番環境を変更する前に、必ずテスト環境で動作確認を行います。
4. 本番環境の切り替え
テストで問題がなければ、本番環境のPHPバージョンを切り替えます。年末年始の休暇前に完了させることをおすすめします。
年末までに移行が間に合わない場合
どうしても年末までに移行が完了しない場合の選択肢です。
1. OSのバックポートに頼る(暫定対応)
Ubuntu 22.04 LTSなど、OSのサポート期間中はバックポートが提供される環境であれば、しばらくは重大な脆弱性への対応が行われます。ただし、これは暫定的な対応であり、早期の移行計画を立てる必要があります。
2. 延長サポートサービスの利用
一部のベンダーがEOL後のPHPに対してセキュリティパッチを提供するサービスを行っています。有料ですが、どうしても移行できない場合の選択肢として検討できます。
3. リスクを受容して継続利用(非推奨)
さくらのレンタルサーバーのように、EOL後も提供を続けるサービスでは継続利用が可能です。ただし、セキュリティリスクは自己責任となります。個人情報や決済を扱うサイトでは推奨できません。
まとめ
| 項目 | 内容 |
|---|---|
| EOL日 | 2025年12月31日 |
| 推奨移行先 | PHP 8.3 または PHP 8.4 |
| 注意点 | utf8_encode()削除、動的プロパティ非推奨 |
| ホスティング | 業者により対応が異なる(要確認) |
| 対応期限 | 年末年始前(実質今すぐ) |
PHP 8.1のサポート終了まで残り2週間です。年末年始を挟むと対応が難しくなるため、今すぐPHPバージョンの確認とテストを始めてください。

年末の忙しい時期ですが、EOLは待ってくれません。早めの対応で安心して年を越しましょう🎍


コメント