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バージョンのアップデートは、設定ファイルの更新とプロビジョニングの実行により、比較的容易に実施できます。ただし、メジャーバージョンのアップグレードでは互換性の問題が発生する可能性があるため、事前のバックアップとテストが不可欠です。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark