Ubuntu22.04にアップグレードしたらApache2が起動しなくなった件

コンピュータ関連
この記事は約6分で読めます。

2025.4.2 

表題の通り事件が起こり、色々対処した流れを忘備録としてまとめた記事です。

内容は対応別に分岐していますので、それぞれ見合った内容を参照していただければと思います。

 

さて、この前UbuntuのOSバージョンを、20.04から22.04へアップグレードしたら、Apache2が使えなくなる現象が起きました。

結論として、「勝手に最新版のPHPをインストール」されて「参照するモジュールがずれる」ことが原因のようです。

(正確には、最新版のPHPをインストールしたのに、モジュールが古い、という齟齬が生まれて起動できん、という内容。)

Apache2を起動させようとすると、こういうエラーが出たはず。

sudo systemctl start apache2
>apache2: Syntax error on line 149 of /etc/apache2/apache2.conf: Syntax error on line 3 of /etc/apache2/mods-enabled/php8.1.load: Cannot load /usr/lib/apache2/modules/libphp8.3.so into server: /usr/lib/apache2/modules/libphp8.1.so: cannot open shared object file: No such file or directory

要約すると、「PHP8.1を起動したいんやが、使用可能モジュール探してもPHP8.1のモジュールが見当たらないんやが?」というエラー。

ファイルを解析すると、使用可能モジュールの記載が「php7.4(今まで使ってたバージョン)」になってるんですよね。

そりゃ起動できんわな。

18.04から20.04に上げるときは、PHPの最新バージョンにアップグレードするかどうか聞かれた気がするようなしないような。。。

ということでPHPのバージョンを変更する(モジュールの参照値変更の)やり方はこちらになります。↓

で、実はモジュールの参照値を変えるだけでは解決しなくて(Apache2だけ使ってたらそれでいい)、MySQLなどの付属モジュールも個別にインストールしたり再設定したりする必要があるんですよね。

なので、一番いいやり方としては、「OSアップブレード前にPHPとPHPの付属モジュールも一緒にインストールしてアップデートした後に、OSのアップグレードをする」です。

更に、この状態だと他に問題が波及していて・・・

私は「phpMyAdmin」「Moodle」といったWEBサービスも利用してるのですが、現在使っているバージョンがPHP7系にしか対応しておらず、これらのサービスのバージョンを上げないとPHP8系のWEBサーバでは使えないという状況。

これらはPHPのバージョンを戻したら起動しましたが、ゆくゆくはバージョンアップしないといけなくなるのは目に見えてるので、一応テスト的にやってみました。

phpMyAdminのバージョンアップのやり方はこちら。↓

Moodleのバージョンアップのやり方はこちら。↓

 

 

0.実行環境

■サーバ環境

・さくらVPSメモリ:2GB、CPU:3コア、SSD:200GB)

LinuxOS:Ubuntu20.04LTS

Apache:2.4

MySQL:5.7

PHP:7.4

 

1.最後に

実際アップグレード作業をしたらサービスが動かなくなってどうしようもなくなった・・・みたいなことが無いよう、バックアップは取っておくべきですね。

マジで取っててよかったという案件でした。

▼バックアップの取り方はこちらから▼

 

▼オススメ教本▼

コメント

タイトルとURLをコピーしました