# PHP 8.1 から 8.4 へアップグレード

Ubuntu で PHP 8.1 から 8.4 へアップグレードする手順を説明します。

ondrej/php PPA について

Ubuntu 公式リポジトリには最新の PHP バージョンが含まれていないため、ondrej/php PPA(Personal Package Archive)を利用します。これは Ubuntu 向けの非公式 PHP リポジトリで、最新の PHP バージョンを提供しています。

# アップグレード手順

# 1. リポジトリの追加

まず、ondrej/php PPA を追加します。

apt update
apt install -y software-properties-common
add-apt-repository -y ppa:ondrej/php
apt update

# 2. PHP 8.4 のインストール

必要な PHP パッケージをインストールします。使用している拡張機能に応じてパッケージを選択してください。

apt install -y php8.4 php8.4-cli php8.4-fpm php8.4-mbstring php8.4-xml php8.4-curl php8.4-zip php8.4-mysql

# 3. PHP バージョンの切り替え

CLI で使用する PHP バージョンを切り替えます。

# 直接指定して切り替え
update-alternatives --set php /usr/bin/php8.4

# または対話形式で選択
update-alternatives --config php

# 4. バージョン確認

インストールと切り替えが完了したか確認します。

php -v

# php-fpm を使用している場合

Web サーバー(Nginx や Apache)で php-fpm を使用している場合は、追加の設定が必要です。

# php-fpm の切り替え

# 現在の php-fpm を停止
systemctl stop php8.1-fpm

# PHP 8.4 の php-fpm を起動
systemctl start php8.4-fpm
systemctl enable php8.4-fpm

# シンボリックリンクの更新

シンボリックリンクを使用している場合は、以下のように更新します。

# 実行ファイルのシンボリックリンク
ln -sf /usr/sbin/php8.4-fpm /usr/sbin/php-fpm

# ソケットファイルのシンボリックリンク
ln -sf /run/php/php8.4-fpm.sock /run/php/php-fpm.sock

# Nginx の設定確認

Nginx の fastcgi_pass 設定が正しいことを確認します。

fastcgi_pass unix:/run/php/php-fpm.sock;

設定変更後、Nginx をリロードします。

systemctl reload nginx

# 複数の PHP バージョンを管理する

複数の PHP バージョンをインストールして、必要に応じて切り替えることができます。

# インストール済みバージョンの確認

# インストール済みの PHP バージョンを確認
ls /usr/bin/php*

# update-alternatives で管理されているバージョンを確認
update-alternatives --query php

# バージョンの切り替え

対話形式でバージョンを選択できます。

update-alternatives --config php

実行すると、以下のような選択画面が表示されます。

alternative php (/usr/bin/php を提供) には 2 個の選択肢があります。

  選択肢    パス           優先度  状態
------------------------------------------------------------
* 0            /usr/bin/php8.4   84        自動モード
  1            /usr/bin/php8.1   81        手動モード
  2            /usr/bin/php8.4   84        手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:

数字を入力して Enter を押すと、そのバージョンが有効になります。

# トラブルシューティング

# 古いバージョンに戻す場合

問題が発生した場合は、以前のバージョンに戻すことができます。

# PHP CLI のバージョンを切り替え
update-alternatives --set php /usr/bin/php8.1

# php-fpm を切り替え
systemctl stop php8.4-fpm
systemctl start php8.1-fpm

# 拡張機能が見つからない場合

PHP 8.4 用の拡張機能がインストールされていない可能性があります。必要な拡張機能をインストールしてください。

apt install -y php8.4-[拡張機能名]
2025-02-13

同じタグを持つ記事をピックアップしました。