Luxeritas + WordPress 移行作業まとめ(Lightsail Native / PHP8.2)
概要
旧 Bitnami WordPress 環境から、AWS Lightsail Native 環境へ移行を実施。
目的:
- PHP 8.1 EOL 脱却
- Luxeritas fork版の適用
- Bitnami依存脱却
- 今後の保守容易化
- PHP8.2/8.4時代への移行準備
最終構成
インフラ
- AWS Lightsail
- Debian + Apache2
- PHP 8.2.30
- Let’s Encrypt (certbot)
WordPress
- Luxeritas Child Theme
- Luxeritas fork版適用済
- All-in-One WP Migration で移行
実施内容
1. 新Lightsail Native環境構築
実施
- Lightsail Native WordPress環境作成
- Apache2/PHP確認
- SSH接続確認
備考
Bitnami Blueprint が廃止されていたため、Native環境へ変更。
2. WordPressデータ移行
実施
- All-in-One WP Migration export
- 新環境へ import
結果
- 投稿
- 固定ページ
- 画像
- 設定
正常移行。
3. Luxeritas fork版適用
実施
fork版 Luxeritas を適用。
確認
- 投稿表示正常
- 管理画面正常
- Customizer正常
4. REST API / JSONエラー対応
発生事象
投稿保存時:
更新に失敗しました。返答が正しい JSON レスポンスではありません。
原因
REST API 404。
/wp-json/
が Not Found。
対応
WordPress 管理画面:
設定 → パーマリンク → 変更を保存
結果
REST API復旧。
投稿保存正常化。
5. Ping Optimizer問題切り分け
症状
- JSONエラー
- Deprecated大量発生
原因
Ping Optimizer が PHP8系で不安定。
対応
停止。
結果
安定化。
6. Lightsail メモリ不足対応
症状
- timeout
- UPSTREAM_ERROR[515]
- Lightsail status check error
原因
メモリ不足。
Mem: 447MB
Swap: 0
対応
2GB swap追加。
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
結果
安定化。
7. HTTPS / SSL対応
実施
certbot導入。
sudo certbot --apache
発生問題
certbot install失敗:
Could not find a vhost with a ServerName
原因
Apache VirtualHost に ServerName未設定。
対応
000-default.conf
ServerName blog2020.iwadjp.com
ServerAlias www.blog2020.iwadjp.com
default-ssl.conf
ServerName blog2020.iwadjp.com
ServerAlias www.blog2020.iwadjp.com
Apache global ServerName設定
echo "ServerName blog2020.iwadjp.com" \
| sudo tee /etc/apache2/conf-available/servername.conf
sudo a2enconf servername
sudo systemctl reload apache2
certbot install
sudo certbot install --cert-name blog2020.iwadjp.com
結果
Let’s Encrypt 正常導入。
- HTTPS正常
- 鍵アイコン正常
8. Mixed Content / IP直参照対応
症状
Chrome Console:
ERR_CERT_COMMON_NAME_INVALID
Mixed Content
SSL_PROTOCOL_ERROR
原因
Luxeritas生成済JSに新IP直参照が残存。
対象:
wp-content/themes/luxeritas/js/luxe.min.js
wp-content/themes/luxeritas/js/ladmin.min.js
対応
URL置換。
sudo sed -i ...
結果
- Mixed Content解消
- SSL_PROTOCOL_ERROR解消
- Console赤エラー解消
9. WP-Optimize確認
状況
Page Cache は元々OFF。
debug.log内容
Undefined array key "host"
Undefined array key "HTTP_HOST"
strtolower(): Passing null ...
原因推定
- wp-cron
- 自動更新
- CLI実行
時に HTTP_HOST 不在。
現状
Fatal無し。
実害なし。
最終確認結果
正常確認済
- TOP表示
- 投稿表示
- AMP表示
- 投稿保存
- 固定ページ保存
- Customizer
- SMTP送信
- HTTPS
- REST API
debug.log最終状態
実施
sudo truncate -s 0 /var/www/html/wp-content/debug.log
結果
Fatal / Error無し。
残るのは:
Automatic updates complete
等の正常ログのみ。
現在の評価
総合
移行成功。
状態
- 実運用可能
- HTTPS正常
- PHP8.2正常
- Luxeritas正常
残課題(今すぐ不要)
優先度低
1. WP-Optimize Warning調査
現状実害なし。
必要なら後日。
2. PHP8.4対応
現在8.2で安定。
急がなくてよい。
3. preload warning除去
Chrome warningのみ。
無視可能。
4. Luxeritas最適化見直し
現状十分高速。
今後48時間の監視
推奨
tail -50 /var/www/html/wp-content/debug.log
見るもの
- Fatal
- Uncaught
- Allowed memory
- REST API error
教訓・知見
特に重要だったもの
WordPress移行で JSONエラーが出たら
まず:
/wp-json/
確認。
次に:
設定 → パーマリンク → 保存
Luxeritas最適化JSはIP直参照を持つことがある
hosts検証やIPアクセス後は注意。
Lightsail 512MB級では swap 推奨
WordPress + Apache + plugin構成では不足しやすい。
総評
Bitnami依存から脱却し、
- Apache Native
- PHP8.2
- Let’s Encrypt
- Luxeritas fork版
へ移行完了。
今後の Luxeritas / WordPress 保守継続の土台として、
かなり良い状態まで到達できた。