Luxeritas PHP8.3 対応まとめ(2026-05)

最終到達点

PHP8.3 + production DB + production-active plugins

で、

browser / REST / WP-CLI / Customizer / optimization layer

が正常動作する production-like PHP8.3 state を構築完了。

git tag:

php83-production-like

commit:

0a61b8d

構築した環境

stable

役割:

本番 mirror

用途:

  • Apache/MariaDB/PHP 運用確認
  • rollback rehearsal
  • 本番近似確認

構成:

Apache2
MariaDB
PHP8.2

sandbox-php83

役割:

PHP8.3 compatibility baseline

用途:

  • PHP8.3 compatibility
  • WP-CLI compatibility
  • plugin compatibility
  • future PHP8.4 comparison baseline

構成:

WordPress 6.9.4
PHP8.3
wp-env
Luxeritas fork
production DB import

実施フェーズ


Phase A

clean install + Luxeritas compatibility

確認:

  • TOP
  • post
  • page
  • wp-admin
  • REST
  • Customizer
  • optimization layer

KI-04
内容

WP-CLI bootstrap 時、
global state が local scope 化され Warning。

症状
Trying to access array offset on null
修正
global $luxe, $_is, $fchk, $default_set, $widget_concat, $awesome;

追加。

結果

WP-CLI clean。


KI-05
内容
rawurlencode( null )

Deprecated。

修正
rawurlencode( thk_convert( $value ) ?? '' )
結果

SNS path clean。


KI-06
内容

WP-CLI で:

$_SERVER['QUERY_STRING']

未定義。

修正
$_SERVER['QUERY_STRING'] ?? ''
結果

WP-CLI clean。


Phase B

production DB import

実施:

production DB → sandbox

URL search-replace

実行結果
https://blog2020.iwadjp.com
→ http://localhost:8888
80 replacements
http://13.193.215.66
→ http://localhost:8888
6285 replacements

重要発見

旧IP:

13.193.215.66

が大量残存。

sandbox により潜在負債を発見。


optimization layer 確認

確認済み:

  • async CSS
  • AMP
  • preload
  • defer
  • font preload
  • cache layer

結果:

clean

Phase C

plugin compatibility scan

方針
1 pluginずつ activate
→ test
→ deactivate

scan結果
対象
20 plugins
結果
browser debug.log clean
Luxeritas干渉
なし
cache/optimization conflict
なし

production-like PHP8.3 state

active plugins

13 plugins

active

  • all-in-one-wp-migration
  • blog2social
  • broken-link-checker
  • google-site-kit
  • google-sitemap-generator
  • ip-location-block
  • jetpack
  • pubsubhubbub
  • simple-page-ordering
  • taxonomy-terms-order
  • wp-mail-smtp
  • wp-multibyte-patch
  • wp-optimize

inactive plugins

8 plugins
  • akismet
  • all-in-one-seo-pack
  • amp
  • ewww-image-optimizer
  • google-analytics-for-wordpress
  • simple-tags
  • w3-total-cache
  • wordpress-ping-optimizer

must-use

luxe-amp-mu

production-like validation

curl

pathresult
/200
/wp-json/200
/?amp=1200
/wp-admin/302
/sitemap.xml200

browser

確認済み:

  • TOP
  • post
  • wp-admin
  • Customizer
  • AMP
  • optimization layer

結果:

test ok

debug.log

最終結果

clean

browser / REST / WP-CLI 全て clean。


known issues

修正済み

  • KI-04
  • KI-05
  • KI-06

known-issues.md 管理へ移行

KI-09

wordpress-ping-optimizer dynamic property Deprecated

分類:

plugin-side
WP-CLI only

KI-10

amp plugin _load_textdomain_just_in_time

分類:

plugin-side
WP-CLI only

KI-11

amp + ip-location-block interaction

内容:

amp_has_paired_endpoint early call

分類:

plugin interaction
WP-CLI only

production では amp inactive のため実害なし。


現在の評価

Luxeritas は:

PHP8.3で致命的には壊れていない

必要だったのは:

browser-only assumptions

の hardening。

今回の修正は:

  • WP-CLI compatibility
  • future PHP strictness
  • CLI-safe hardening

として有効。


現在完成したもの

PHP8.3 production-like baseline

これにより今後:

PHP8.4固有問題

を高精度で切り分け可能になった。


次フェーズ

予定:

wp-sandbox-php84

作成。

目的:

  • PHP8.4 compatibility
  • strictness確認
  • plugin interaction確認
  • future hardening

です。