(2025.4.2 記)
この前UbuntuのOSバージョンを、20.04から22.04へアップグレードしたら、Apache2が使えなくなる現象が起きました。
結論として、「勝手に最新版のPHPをインストール」されて「参照するモジュールがずれる」ことが原因のようです。
(正確には、最新版のPHPをインストールしたのに、参照モジュールが古いかぐちゃくちゃになってる、という齟齬が生まれて起動できん、という内容。)
ここでは、「PHP8系をPHP7系へ戻す(ダウングレードする)方法」の忘備録として記しました。
正確に言うと、この方法は「インストールされたPHPのバージョンを自由に変えられる」事ができる機能を利用したものです。
ですので、「PHPを任意のバージョンへ変更する」やり方でもあるので、他方で参考になるかと思います。
0.実行環境
■サーバ環境
・さくらVPS(メモリ:2GB、CPU:3コア、SSD:200GB)
・LinuxOS:Ubuntu22.04LTS
・Apache:2.4
・MySQL:8.0
・PHP:7.4、8.1
1.現状の確認
まずはApache2のサービスを止めます。↓
sudo systemctl stop apache2
次のコマンドで、現在デフォルトで起動されるPHPのバージョンを把握します。↓
sudo update-alternatives --config php

現在起動しているPHPのバージョンの所に「*」印が付きます。
ここで、任意の数字(Selection)を入力すると、そのバージョンに変更できます。
(ここでは「1」を選択し、php8.1→php7.4へ変更しています。)
もう一回コマンドを入力し、変更されたか確認します。↓
sudo update-alternatives --config php

変更が確認できたと思います。
2.モジュールの参照値変更
次に変更したPHPのバージョンのモジュールに合うよう、モジュールの参照値を変更していきます。
まずは、変更前のPHPバージョンのモジュール参照値を解除します。↓
(PHP8.1を解除する例です。)
sudo a2dismod php8.1

※「ファイルが見つかりません」みたいな警告が出たらおそらく入力ミスです。php8.1〇〇みたいな特殊なバージョンもあったりするので、手順1で良くPHPのバージョンを確認してください。
解除されたら今度は使用したいPHPのバージョンに参照値を登録します。↓
(PHP7.4を登録する例です。)
sudo a2enmod php7.4

最後に、Apache2を起動させて、エラーが出なければOK!↓
sudo systemctl apache2
これでphp7.4でWebサーバが起動する状態となります。
念のため、Webサーバを利用しているコンテンツを作動させて問題なければ、指定のPHPバージョンでWEBサーバが動いていることになります。
お疲れさまでした。
3.最後に
このような具合に、PHPを好きなバージョンに変更できるので、「PHPのバージョン変えたらサービスで不具合が出た」ら前のバージョンに戻したりできます。
故意にPHPのバージョンが上がっちゃった場合はこれで慌てることなく対処できそうですね。
また、「phpMyAdmin」をご利用の方は、こちらもPHPのバージョンが影響しますので、下記記事を参照し確認いただくと良いかと思います。
▼オススメ教本▼





コメント