※アップデート
2022年1月15日:apt upgradeでパッケージが更新されないようにする方法を追記しました
症状
突然MongoDBへアクセスができなくなったしまった
PHPのドライバが対応していないっぽい
解決
PHPのバージョンを確認
$ php -v
PHP 8.0.12 (cli) (built: Oct 22 2021 12:34:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.12, Copyright (c) Zend Technologies
with Zend OPcache v8.0.12, Copyright (c), by Zend Technologies
PHP8.0.12はアウト
もともとはPHP7.2で動いていた
PHP8 ➢ PHP7.2へダウングレードする
存在するPHPのバージョン一覧を確認
$ ls /usr/bin | grep -i php
dh_phpcomposer
dh_phppear
jsonlint-php
php
php7.2
php7.4
php8.0
php-config
php-config7.2
php-config7.4
phpize
phpize7.2
phpize7.4
php7.2へ変更する
まず現行動いているphp8.0を無効にする
$ sudo a2dismod php8.0
[sudo] password for sugimoto:
Module php8.0 disabled.
To activate the new configuration, you need to run:
systemctl restart apache2
そしてphp7.2を有効にする
$ sudo a2enmod php7.2
Considering dependency mpm_prefork for php7.2:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php7.2:
Enabling module php7.2.
To activate the new configuration, you need to run:
systemctl restart apache2
php7.2に切り替えを実施
$ sudo update-alternatives --set php /usr/bin/php7.2
update-alternatives: using /usr/bin/php7.2 to provide /usr/bin/php (php) in manual mode
Apache2の再起動
$ sudo systemctl restart apache2
変わっているのでOK
追記:apt upgradeでパッケージが更新されないようにする方法!
今回の原因は不意なapt upgrade
をした結果発生したものかと思いまして,その際にパッケージが更新されないようにする方法を見つけました.
こちらの記事を参照にしています
つまりパッケージを
$ sudo apt-mark hold (php7.2系)
に固定することで勝手にアップデートされることはなくなりそうです!