お問い合わせ
image

AWS Lightsail(Ubuntu)で PHP 8.0 FPM を PHP 8.2 FPM にアップグレードする方法

制作・開発
profile

Iftekhar Eather

本記事は、英語で公開されている下記記事の日本語翻訳版です。
How to Upgrade PHP 8.0 to PHP 8.2 FPM on an AWS Lightsail Ubuntu Instance for Laravel

PHP は継続的に進化しており、最新の安定版を利用することは、処理速度や安全性、そして Laravel のような最新フレームワークとの互換性を保つうえで重要です。
Ubuntu を使用した AWS Lightsail 環境で Laravel を運用しており、PHP 8.0 FPM から PHP 8.2 FPM へアップグレードしたい場合、本記事の手順が参考になります。

なぜ PHP 8.2 にアップグレードするのか

PHP 8.2 では、新機能の追加や処理の最適化、古い機能の整理など、多くの改善が行われています。
アップグレードすることで、これらの改善点を活かしつつ、セキュリティ要件を満たした状態でアプリケーションを運用できます。

AWS Lightsail 環境で PHP をアップグレードする手順

Step 1:PHP 8.2 FPM をインストールする

アップグレードを始める前に、AWS Lightsail インスタンスへ SSH 接続します。接続後、パッケージ一覧を更新し、PHP 8.2 FPM と必要な PHP 拡張をインストールします。

sudo apt update
sudo apt install php8.2-fpm php8.2-mbstring php8.2-xml php8.2-curl php8.2-mysql php8.2-zip php8.2-gd php8.2-bcmath

これらの拡張は Laravel で一般的に使用されるものですが、実際の構成に応じて調整してください。

Step 2:Nginx の設定を更新する

Laravel アプリケーションは Nginx 上で動作しているため、新しく導入した PHP 8.2 FPM を使用するよう設定を変更します。

テキスト編集用のソフトで Nginx のサイト設定ファイル(sudo nano /etc/nginx/sites-available/default)を開き、fastcgi_pass の設定をunix:/var/run/php/php8.0-fpm.sock; からunix:/var/run/php/php8.2-fpm.sock; に書き換えたあと、Ctrl + XYEnter の順に押して保存します。

Step 3:PHP 8.0 FPM を停止する

PHP 8.2 FPM を導入したら、サービスの競合を避けるため、PHP 8.0 FPM を停止します。

sudo systemctl disable php8.0-fpm
sudo systemctl stop php8.0-fpm

Step 4:PHP 8.2 FPM を有効化・起動する

続いて、PHP 8.2 FPM を有効化し、起動します。

sudo systemctl enable php8.2-fpm
sudo systemctl start php8.2-fpm

Step 5:Nginx を再起動する

設定を反映させるため、Nginx を再起動します。

sudo systemctl restart nginx

Step 6:PHP のバージョンを確認する

アップグレードが正しく行われたかを確認するため、phpinfo ファイルを作成します。

sudo nano /var/www/html/info.php を実行してファイルを作成し、中に <?php phpinfo(); ?> を追加します。その後、ブラウザで http://ipordomain/info.php にアクセスし、PHP のバージョンが 8.2 と表示されていれば、アップグレードは正常に完了しています。

Step 7:PHP CLI が PHP 8.2 を使用しているか確認する

Nginx 側で PHP をアップグレードしていても、コマンドライン(CLI)では古い PHP(例:PHP 8.0)が引き続き使われている場合があります。この状態だと、php artisan schedule:list などの Artisan コマンドを実行した際に問題が発生することがあります。

現在の PHP CLI のバージョンを確認するphp -v を実行します。PHP 8.2 ではなく PHP 8.0 が表示される場合は、CLI のデフォルトの PHP バージョンを更新する必要があります。
update-alternatives を使って PHP CLI を更新する:update-alternatives ツールを使用し、CLI のデフォルト PHP バージョンを PHP 8.2 に設定します。
・sudo update-alternatives --set php /usr/bin/php8.2
・sudo update-alternatives --set phpize /usr/bin/phpize8.2
・sudo update-alternatives --set php-config /usr/bin/php-config8.2

・または、シンボリックリンクを直接更新する方法もあります。
sudo ln -sf /usr/bin/php8.2 /usr/bin/php
次のコマンドを実行して変更を確認するphp -v を実行します。有効なバージョンとして PHP 8.2 が表示されていれば、設定は完了です。

Step 8:Laravel のキャッシュをクリアする(任意)

アップグレード後は、Laravel のキャッシュを削除しておくと、動作確認がしやすくなります。

php artisan optimize:clear

まとめ

AWS Lightsail(Ubuntu)環境で PHP 8.0 FPM から PHP 8.2 FPM へアップグレードする作業は、手順を押さえれば難しいものではありません。PHP を最新の状態に保つことで、Laravel アプリケーションの安全性や動作の安定性を維持し、将来的な変更にも対応しやすくなります。本記事の手順に沿って進めれば、PHP 8.2 環境へスムーズに移行できます。

日本語翻訳:K. Shimazaki