LoginSignup
0
0

More than 1 year has passed since last update.

PHPのバージョンが勝手に変更されてMongoDBにアクセスできなくなった話

Last updated at Posted at 2022-01-13

※アップデート

2022年1月15日:apt upgradeでパッケージが更新されないようにする方法を追記しました

症状

image.png

突然MongoDBへアクセスができなくなったしまった
PHPのドライバが対応していないっぽい

解決

PHPのバージョンを確認

image.png

$ 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

確認
image.png

変わっているのでOK

データも見れているのでOK
image.png

追記:apt upgradeでパッケージが更新されないようにする方法!

今回の原因は不意なapt upgradeをした結果発生したものかと思いまして,その際にパッケージが更新されないようにする方法を見つけました.
こちらの記事を参照にしています

つまりパッケージを

$ sudo apt-mark hold (php7.2系)

に固定することで勝手にアップデートされることはなくなりそうです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0