PR

【PHP 8.1 サポート終了】2025年12月末までに確認すべきこと

スポンサーリンク
社内SE
記事内に広告が含まれています。
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク

はじめに

PHP 8.1のセキュリティサポートが2025年12月31日に終了します。

当初は2024年11月終了予定でしたが、RFCにより1年延長されました。しかし、その延長期間も残りわずか。年末年始を挟むため、実質的な対応期限は今すぐです。

この記事では、PHP 8.1からの移行について、社内SE向けに解説します。

たまのSE
たまの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.22022年12月2026年12月31日△ 1年後に再移行が必要
PHP 8.32023年11月2027年12月31日○ バランスが良い
PHP 8.42024年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()の非推奨化
たまのSE
たまのSE

utf8_encode()を使っているコードは8.3で動かなくなります。mb_convert_encoding()への置き換えが必要です💡

レンタルサーバー・ホスティングの対応状況

ホスティング業者によって対応が異なります。事前に確認が必要です。

主要サービスの対応

サービス対応
さくらのレンタルサーバ非推奨だが提供継続(自己責任)
アルファメール提供終了予定
一部のWordPressホスティングPHP 8.4への強制アップグレード

さくらのレンタルサーバーは「非推奨」として提供を続ける方針ですが、セキュリティリスクは利用者の自己責任となります。一方、アルファメールのように提供自体を終了するサービスもあります。

WordPressホスティングでは強制アップグレードも

一部のWordPress専用ホスティングでは、EOLに合わせてPHP 8.4への強制アップグレードが実施されています。互換性テストをしていないと、突然サイトが動かなくなる可能性があります。

OSのバックポート対応

一部のOSでは、EOL後もセキュリティパッチがバックポートされる場合があります。

OSPHP 8.1のバックポート
RHEL 92025年5月で終了(PHP公式より早い)
Amazon Linux 20232025年12月まで(PHP公式と同じ)
Ubuntu 22.04 LTSOSのサポート期間中は継続

ただし、バックポートは「重大な脆弱性のみ」が対象であり、すべての修正が適用されるわけではありません。本番環境では公式サポート中のバージョンを使用することを推奨します。

スポンサーリンク

互換性の確認ポイント

1. WordPressサイトの場合

WordPress本体は最新版であればPHP 8.3/8.4に対応しています。問題になりやすいのはプラグインとテーマです。

確認事項

  • プラグイン・テーマが1年以上更新されていないものはないか
  • PHP 8.3/8.4対応を明記しているか
  • 開発が終了したプラグインを使用していないか

テスト方法

  1. ステージング環境を用意
  2. PHPバージョンを8.3または8.4に変更
  3. 全ページを表示確認(エラーログも確認)
  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プラグイン

この場合は、システム自体のリプレイスを検討する必要があります。

たまのSE
たまのSE

古い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バージョンの確認とテストを始めてください。

たまのSE
たまのSE

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

コメント

タイトルとURLをコピーしました