Amimoto AMIでPHP 7.4から8.2へアップデートする方法
Amimoto AMIは、WordPressのホスティングに最適化されたAMI(Amazon Machine Image)です。本記事では、Amazon Linux 2上で稼働しているAmimoto環境において、PHP […]
目次
Amimoto AMIは、WordPressのホスティングに最適化されたAMI(Amazon Machine Image)です。本記事では、Amazon Linux 2上で稼働しているAmimoto環境において、PHP 7.4から8.2へアップデートする手順を解説します。
AmimotoはChefでPHPなどを構成管理している
Amimoto AMIではChefのクックブックを使用してミドルウェアの構成管理を行っています。PHPバージョンの更新は、設定JSONファイルを更新してプロビジョニングを実行することで実現できます。
利用可能なPHPバージョンの確認
まず、Amazon Linux 2で利用可能なPHPバージョンを確認します。
amazon-linux-extras list | grep php
この結果、以下のバージョンが利用可能であることが確認できました。
42 *php7.4=latest enabled [ =stable ]
_ †php8.1 available [ =stable ]
_ php8.2 available [ =stable ]
Amazon Linux 2では、PHP 8.2が最新の利用可能バージョンとなります。Amazon Linux 2は2025年6月にメインストリームサポートが終了しているため、PHP 8.3以降は公式にサポートされていません。
アップデート前の準備
システムの変更を行う前に、必ず現在の設定をバックアップします。
sudo cp /opt/local/amimoto.json /opt/local/amimoto.json.backup
sudo cp /etc/php.ini /etc/php.ini.backup
sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.backup
PHP 8.2へのアップデート手順
Amimotoの設定ファイルを更新し、プロビジョニングを実行します。
echo '{"phpfpm":{"enabled": true, "version":"82"}}' > /tmp/php-fpm-82.json
sudo jq -s '.[1] * .[0]' /tmp/php-fpm-82.json /opt/local/amimoto.json > /tmp/amimoto.json
sudo mv -f /tmp/amimoto.json /opt/local/amimoto.json
rm /tmp/php-fpm-82.json
sudo /opt/local/provision
この処理では、jqコマンドを使用して既存の設定ファイルとPHPバージョン指定をマージしています。/opt/local/provisionスクリプトがChefを実行し、必要なパッケージのインストールと設定変更を自動的に行います。
動作確認
アップデート完了後、以下のコマンドで各コンポーネントの状態を確認します。
PHPバージョンの確認
php -v
期待される出力:
PHP 8.2.29 (cli) (built: Jul 28 2025 21:27:24) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.29, Copyright (c) Zend Technologies
with Zend OPcache v8.2.29, Copyright (c), by Zend Technologies
PHP-FPMの状態確認
sudo systemctl status php-fpm
active (running)の状態であることを確認します。
Nginxの状態確認
sudo systemctl status nginx
同様にactive (running)の状態であることを確認します。
WordPressの動作確認
curl -I http://localhost
正常にレスポンスが返ることを確認します。実際のサイトにブラウザでアクセスし、管理画面を含めて動作に問題がないことを確認してください。
アップデート後の監視
PHPのメジャーバージョンアップグレードでは、互換性の問題が発生する可能性があります。アップデート後24時間程度は、以下のログを監視することを推奨します。
sudo tail -f /var/log/php-fpm/error.log
sudo tail -f /var/log/php-fpm/www-error.log
sudo tail -f /var/log/nginx/error.log
PHP 7.4から8.2への主な変更点と注意事項
PHP 8.0、8.1、8.2では多くの機能追加と非互換性のある変更が行われています。特に以下の点に注意が必要です。
PHP 8.0で導入された変更として、名前付き引数のサポート、match式、nullsafe演算子などの新機能が追加されています。一方で、get_class()の引数なし呼び出しや、一部の動的な機能について挙動が変更されています。
PHP 8.1では、列挙型(Enum)のサポートやファイバーの導入など、さらなる機能強化が行われました。PHP 8.2では、読み取り専用クラスのサポートや、動的プロパティの非推奨化など、より厳密な型システムへの移行が進められています。
WordPressのプラグインやテーマによっては、これらの変更により正常に動作しなくなる可能性があります。本番環境でのアップデート前に、必ずステージング環境でテストを実施してください。
トラブルシューティング
問題が発生した場合は、バックアップした設定ファイルから復元し、PHP 7.4に戻すことも可能です。
sudo cp /opt/local/amimoto.json.backup /opt/local/amimoto.json
echo '{"phpfpm":{"enabled": true, "version":"74"}}' > /tmp/php-fpm-74.json
sudo jq -s '.[1] * .[0]' /tmp/php-fpm-74.json /opt/local/amimoto.json > /tmp/amimoto.json
sudo mv -f /tmp/amimoto.json /opt/local/amimoto.json
rm /tmp/php-fpm-74.json
sudo /opt/local/provision
まとめ
AMIMOTO AMIにおけるPHPバージョンのアップデートは、設定ファイルの更新とプロビジョニングの実行により、比較的容易に実施できます。ただし、メジャーバージョンのアップグレードでは互換性の問題が発生する可能性があるため、事前のバックアップとテストが不可欠です。