ubuntu22.04にアップグレードしたらはまった話

転職活動真っ只中の高木です。一旦は正社員として腰を据えて落ち着きたい。
そんな中、今取り組んでいるログローテート設定のためいつも通りSSHでログインしたら
鯖「よう、OSの新バージョン出てんで! アップデートできるで!」
とのメッセージ。ほほう!と思い何も考えずにYES ENTER
これがまずかった。

何が起きたか

SMBのファイルサーバー以外全部逝った。
WEBサーバー系が軒並み利用不可になりました。マジ焦る。
Apache2で以下の3つを動かしています
・Doku wiki
・zabbix
・motion

原因

まずはApache2のログを確認

sudo journalctl -xeu apache2.service
Syntax error on line 146 of /etc/apache2/apache2.conf: Syntax error on line 3 of /etc/apache2/mods-enabled/php7.3.load: Cannot load /usr/lib/apache2/modules/libphp7.4.so into server: /usr/lib/apache2/modules/libphp7.4.so: cannot open shared object file: No such file or directory

Apache2「php7.4読み込めねーんだけど?」
今まではphp7.4でしたがアップデートでphp8になったことが原因。
そもそもzabbix5.0はphp8はサポート外らしい。Apache2の起動すらできない状態となりました。

解決に向けて

自分の取った選択はphp8→php7.4へのダウングレードして復旧を目指すこととした。

sudo apt-get install php7.4
sudo apt-get install php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-mysql php7.4-mbstring  php7.4-zip php7.4-fpm php7.4-intl php7.4-simplexml
sudo a2dismod php8.0
sudo a2enmod php7.4
sudo update-alternatives --set php /usr/bin/php7.4
sudo update-alternatives --set phar /usr/bin/phar7.4
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4
sudo update-alternatives --set phpize /usr/bin/phpize7.4
sudo update-alternatives --set php-config /usr/bin/php-config7.4
sudo service apache2 restart  
参考になったサイト

第2の問題

ここまでの作業でApache2の起動には成功!
いざブラウザでアドレス打ち込みアクセスしたら、真っ白の画面にphpのソースコードが表示されているだけ。
apache2.confの一番下に以下を追記

AddType application/x-httpd-php .php

そして完全復旧へ

zabbixもダッシュボードにはアクセスできるものの全てのグラフがphp関係のエラーメッセージで埋め尽くされている。

sudo apt install php7.4-bcmath

このコマンドを叩いても円グラフだけが表示されない。

sudo apt -y install php7.4-gd
sudo systemctl restart zabbix-server

これでzabbixも完全復旧!!!!! なお深夜2時まで汗ダラダラ流しながら必死漕いでエラーと格闘していました。
↓参考になったサイト

apache2+phpでソースが表示される

高木
  • 高木

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です