Ubuntu 20.04 にPHP8.xをインストールして、バージョンを切り替える。

Ubuntu 20.04において、標準でインストールされるPHPのバージョンは 7.4。だけれど当該バージョンは、2022年の11月にサポートが切れてしまいました。

ということで、PHP8.0と8.1をインストールして、バージョンを切り替えつつ、既存のPHPスクリプトの動作確認を行ってみます。

まずはリポジトリの追加。

sudo add-apt-repository ppa:ondrej/php

キャッシュの更新。

sudo apt update

PHP8.0をインストール。

sudo apt install php8.0
  • 以下のパッケージがインストールされます:php8.0、php8.0-cli、php8.0-common、php8.0-opcache、php8.0-readline(、libapache2-mod-php8.0)

使用するモジュールを追加でインストール。

sudo apt install php8.0-bcmath php8.0-bz2 php8.0-curl php8.0-fpm php8.0-gd php8.0-mbstring php8.0-mysql php8.0-xml php8.0-zip

同様に、PHP8.1のパッケージ・モジュールもインストール。

無事インストールができたら、PHPのバージョン切り替え。

sudo update-alternatives --config php

以下のような出力が表示されます。

php_alterversion.png

インストールした段階で、最新のバージョンが自動的にアクティブになっているようです。数字を入力することでバージョンの切り替えが可能です。ひとまずこの選択を保持したまま(Enterキーを押して)終了。

確認のため、

php -v
php_alterversion02.png

コマンドラインから実行するPHPのバージョンは、ちゃんと 8.1 になっていることが判ります。

さて、ウェブサーバの方はどうかというと、php_info() で確認してみると…

php_info.png

こちらも 8.1 に切り替えます。

うちのウェブサーバは Apache + mpm_event + PHP-FPM で運用しています。まずは php7.4 の設定を外して…

sudo a2disconf php7.4-fpm

8.1 の設定を登録。

sudo a2enconf php8.1-fpm

Apacheを再起動。

sudo systemctl restart apache2

php_info() で確認してみると、

php_info02.png

はい。

何かエラーが出た時は、動作し続けているであろう php7.4-fpm を停止:

sudo systemctl stop php7.4-fpm

で、8.1-fpmを再起動。

sudo systemctl restart php8.1-fpm

更に、php7.4-fpmが次回、自動起動しないように:

sudo systemctl disable php7.4-fpm

これで良い筈。

php7.4-fpmなどのサービスが起動しているかどうか、また自動起動するかどうか(enabled か disabled か)は、

sudo systemctl status サービス名

…で確認できます。

update-alternativesコマンドでPHPのバージョンを切り替える度に、Apache2のPHP-fpmの設定切り替えも忘れずに、ということですね。

カテゴリ: