Debian 12 の PHP を 8.3 にアップデートする

Drupal

Drupal 11 へのアップグレードの準備として、PHP 8.3 をインストールする。
モジュールもあれこれ追加しているから、確認しながらインストールしてみる。

 

◇リポジトリの追加

sudo apt install apt-transport-https
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update

 

この状態で update されるパッケージは次のとおり。

sudo apt list --upgradable 
一覧表示... 完了
libapache2-mod-php8.2/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
libapache2-mod-php/bookworm 2:8.3+94+0~20240205.51+debian12~1.gbp6faa2e all [2:8.2+93 からアップグレード可]
libgd3/bookworm 2.3.3-12+0~20240711.16+debian12~1.gbpd0ea70 amd64 [2.3.3-9 からアップグレード可]
php-apcu/bookworm 5.1.23-1+0~20231125.39+debian12~1.gbp8bf49a amd64 [5.1.22+4.0.11-2 からアップグレード可]
php-common/bookworm 2:94+0~20240205.51+debian12~1.gbp6faa2e all [2:93 からアップグレード可]
php-intl/bookworm 2:8.3+94+0~20240205.51+debian12~1.gbp6faa2e all [2:8.2+93 からアップグレード可]
php-uploadprogress/bookworm 2.0.2++-1+0~20231125.30+debian12~1.gbpe2eb7b amd64 [2.0.2+1.1.4-8 からアップグレード可]
php8.2-apcu/bookworm 5.1.23-1+0~20231125.39+debian12~1.gbp8bf49a amd64 [5.1.22+4.0.11-2 からアップグレード可]
php8.2-cli/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2-common/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2-curl/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2-fpm/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2-gd/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2-imagick/bookworm 3.7.0-5+0~20240704.44+debian12~1.gbp3f7f5c amd64 [3.7.0-4 からアップグレード可]
php8.2-intl/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2-mbstring/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2-mysql/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2-opcache/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2-readline/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2-uploadprogress/bookworm 2.0.2++-1+0~20231125.30+debian12~1.gbpe2eb7b amd64 [2.0.2+1.1.4-8 からアップグレード可]
php8.2-xml/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da amd64 [8.2.20-1~deb12u1 からアップグレード可]
php8.2/bookworm 8.2.23-1+0~20240830.60+debian12~1.gbp2d65da all [8.2.20-1~deb12u1 からアップグレード可]

 

ということで、PHP 8.3 をインストールするときに、関係のパッケージもインストールする。

sudo apt install php8.3 libapache2-mod-php8.3 libgd3 php8.3-{apcu,cli,curl,fpm,gd,imagick,intl,mbstring,mysql,opcache,readline,uploadprogress,xml}

 

◇ php8.3-fpm の設定

/etc/php/8.3/fpm/pool.d/www.conf を自分の環境に応じて書き換える。次の例では www.conf を user.conf に書き換えてユーザー毎の設定ファイルを設置している。

-[www]
+[user]

-user = www-data
+user = user

-group = www-data
+group = user

-listen = /run/php/php8.3-fpm.sock
+listen = /run/php/user-fpm.sock


/etc/php/8.3/fpm/php.ini も同様に自分の環境に併せて書き換える。

upload_max_filesize = 128M
memory_limit = 1000M

 

PHP 8.3 のモジュールを有効化する。

sudo a2enmod php8.3

 

apcu 関係の設定を変更する。

sudo vi /etc/php/8.2/fpm/conf.d/20-apcu.ini

extension=apcu.so
apc.shm_size=128M #この行を追加。レポートを見ながら数値を決定する。

 

サービスを起動する。php8.2-fpm はいらないから無効にする。

sudo systemctl stop php8.2-fpm.service
sudo systemctl disable php8.2-fpm.service
sudo systemctl start php8.3-fpm.service
sudo systemctl restart apache2.service

 

PHP 8.2 と切り替えることもないから削除する。

sudo apt remove --purge php8.2-*

 

◇最後に

念の為サーバーをリブートして正常に立ち上がることを確認する。
だいたいこんな感じで PHP 8.3 への切り替え作業は終了した。
これで、Drupal 11 へのアップグレードの準備ができた。

 


 

Drupal と同じコンテンツタイプの記事

リリースノートはこちらのとおり。

お知らせが来てたからいつもどおりアップデートを実行。
次のコマンドで特に問題なく完了した。

メッセージが届いていたからアップデートを実行。今回は若干の手間が生じた。

 

アップデート

最新バージョンへの更新ということで、いつもどおりこちらのリリースノートに基づいてコマンドを実行する。

お知らせが届いたからリリースノートのとおり次のコマンドを実行。

理解し難いタイトル。

もとの表示の何が問題だったかというと、長いタイトルの記事と短いタイトルの記事が一覧で表示されたときに、画像の位置がずれてしまうため、どうしても見栄えが気になっていた。

具体的には次の画像のとおりで、右端の記事のタイトルが2行になるため、画像の位置が下がってしまう。
・・・気にしなければどうということは無いけど気になってしまった。

ある記事を表示したときに、同じコンテンツタイプの次の記事・前の記事を表示するためのナビゲーションを設置してみる。
今の状態だと、次の記事を見るためには一度コンテンツタイプ一覧の画面(例えば Drupal)に戻ってから、次の記事を選択する必要があるから不便。