(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.最後に
実際アップグレード作業をしたらサービスが動かなくなってどうしようもなくなった・・・みたいなことが無いよう、バックアップは取っておくべきですね。
マジで取っててよかったという案件でした。
▼バックアップの取り方はこちらから▼
▼オススメ教本▼








コメント