amazon linux2 でのPHP8.1アップデート…リベンジ

前回Wordpressに謎のダメ出しを食らったamazon linux extraのphp8.0からremi-8.1へのアップデートについて、再度実行。

ただし今回は事前にkagoya/webarenaの使用感の確認の意味でこれらの環境で事前に動作確認を行った上での実行。

とりあえずのポイントはすべてのPHP関連モジュールを削除すること。PHP本体のバージョンに依存しないはずのpeclでインストールしたモジュールも消す。

その後、remiレポジトリをインストールし、yum-config-manager(入ってなければインストールする)を使用し、remiのphp8.1をenableする。

#yum-config-manager --enable remi-php81

その後以下のように –enablerepoオプションでremi-php81を、–disablerepoオプションでamzn2-coreを使用してphpをインストールする。

#yum install –enablerepo=remi-php81 –disablerepo=amzn2-core php php-fpm ….

–disablerepoでamazon linux2のレポジトリを除外しないとamazon linux2側のphpが選択される。なお、この方法はPHP8.1をシステムのデフォルトPHPとしてインストールする方法であり、いくつかのバージョンを併存させる場合や特定のアプリでのみPHP8.1を使用したい場合は

#yum install php81-php php81-php-fpm …

等のようにすればいい(この方法でインストールした場合、php-fpmのwww.confの位置などが変更になるので注意)

また、peclでインストールしたモジュールをアンインストールしたのはremiレポジトリにパッケージ化された同名モジュールが存在する(当方の環境ではapcu,igbinary,msgpackが該当)ためで、これらについてはパッケージ版に置き換え。

注意点として、置き換えた際に/etc/php.dにファイルとして追加モジュールの設定を設定しているとパッケージ版用のコンフィグファイルと同時にフォルダ内に存在することとなり警告が発生する。そのためモジュール置き換え後は重複したモジュールのコンフィグの内容を新しい設定ファイルに反映させて旧版を削除する(なお、起動設定をインストール時の説明通りにphp.iniに記載している場合はモジュールアンインストール時に自動的に設定が削除される)

といわけで、無事にPHP8.1への移行を完了。実は結局のところ前回失敗した理由は不明。

なお、移行試験時に感じた各VPSホストの使用感については別途記事にする。