ubuntuを 20.04LTS から 22.04LTS にOSをアップグレードしたら PHP7.4 が削除されて PHP8.1 がインストールされました。22.04LTS ではデフォルトでサポートされているPHPのバージョンは8.1とのことです。 PHPのバージョンを上げるつもりはなかったので元に戻します。作業はrootユーザーで行いました。
まず、PHP7.4で必要なパッケージのインストールを行います。
# apt install software-properties-common
次に、リポジトリの追加を行います。ppa:ondrej/php リポジトリには過去バージョンのPHPが揃っています。
# add-apt-repository ppa:ondrej/php
いったんここでパッケージリストを更新します。
# apt update
準備ができたので、PHPのインストールを行います。必要そうなパッケージをまとめてインストールします。
# apt install php7.4 php7.4-cli php7.4-fpm php7.4-mysql php7.4-xml php7.4-mbstring php7.4-curl php7.4-zip
これでPHP7.4のインストールができました。ただこのままだとシステムが認識するPHPは8.1のままなので、update-alternatives コマンドで7.4を有効にする設定をします。
# update-alternatives --config php
選択を促すプロンプトが表示されるので、7.4の番号を選んでリターンキーを押下します。
# update-alternatives --config php alternative php (/usr/bin/php を提供) には 2 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/bin/php8.1 81 自動モード 1 /usr/bin/php7.4 74 手動モード 2 /usr/bin/php8.1 81 手動モード 現在の選択 [*] を保持するには、さもなければ選択肢の番号のキーを押してください: 1 ←ここを入力 update-alternatives: /usr/bin/php (php) を提供するためにマニュアルモードで /usr/bin/php7.4 を使います
PHPのバージョンを確認して7.4になっていれば完了です。
# php -v
なお nginxでPHPを動かす場合ですが php7.4-fpm をインストールすると /var/run/php 配下に php7.4-fpm.sock というソケットファイルができます。このソケットファイルを nginx.conf の fastcgi_pass ディレクティブに指定すればよいのですが、同ディレクトリには php-fpm.sock というシンボリックリンクがあり、こちらのリンク先は php7.4-fpm.sock になっているようです。
# update-alternatives --display php-fpm.sock
# update-alternatives --display php-fpm.sock php-fpm.sock - 自動モード 最適なリンクのバージョンは '/run/php/php7.4-fpm.sock' です リンクは現在 /run/php/php7.4-fpm.sock を指しています リンク php-fpm.sock は /run/php/php-fpm.sock です /run/php/php7.4-fpm.sock - 優先度 74
ですので、php-fpm.sock でも良いと思います。