環境
Ubuntu20.04/Apache 2.4でNextcloudを27にアップデート後、以下のメッセージがありました。
・最後のバックグラウンドジョブの実行は17時間前を実行しました。何かがおかしいようです。バックグラウンドジョブの設定を確認してください。
この問題を解決していきます。
状況確認
- cronジョブを確認
sudo -u www-data php /var/www/html/nextcloud/cron.php
# Nextcloudがインストールされているディレクトリ配下にあります
- 実行結果
Doctrine\DBAL\Exception: Failed to connect to the database: An exception occurred in the driver: could not find driver in /var/www/html/nextcloud/lib/private/DB/Connection.php:140
Stack trace:
#0 /var/www/html/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1531): OC\DB\Connection->connect()
#1 /var/www/html/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1029): Doctrine\DBAL\Connection->getWrappedConnection()
#2 /var/www/html/nextcloud/lib/private/DB/Connection.php(262): Doctrine\DBAL\Connection->executeQuery()
#3 /var/www/html/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php(345): OC\DB\Connection->executeQuery()
#4 /var/www/html/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(280): Doctrine\DBAL\Query\QueryBuilder->execute()
(後略)
この症状をWebで見てみたら、同じような症状を発見。
もしやと思ってphpinfoで調べたら、やっぱりlaravelをインストした時はphp8で、
アプデの時に8.1がインストされたようです。
php -v
PHP 8.2.8 (cli) (built: Jul 8 2023 07:09:59) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.8, Copyright (c) Zend Technologies
サーバの設定変更時にPHPのバージョンアップが走り、新たなPHPにPHPドライバーが走っていなかったようです。
まずはこの問題をただすため、上記URLを参考に以前使っていたバージョンに戻します。
PHPバージョンダウン
sudo update-alternatives --config php
alternative php (/usr/bin/php を提供) には 2 個の選択肢があります。
選択肢 パス 優先度 状態
------------------------------------------------------------
* 0 /usr/bin/php8.2 82 自動モード
1 /usr/bin/php8.1 81 手動モード
2 /usr/bin/php8.2 82 手動モード
現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください: 1
update-alternatives: /usr/bin/php (php) を提供するためにマニュアルモードで /usr/bin/php8.1 を使います
sudo update-alternatives --config php
を実行して、選択肢「1」を実行。
- Webサービス再起動
sudo systemctl restart apache2.service
- バージョンダウン確認
php -v
PHP 8.1.21 (cli) (built: Jul 8 2023 07:09:57) (NTS)
これで元に戻っていることを確認。
- cron再実行
sudo -u www-data php /var/www/html/nextcloud/cron.php
# Nextcloudがインストールされているディレクトリ配下にあります
エラーなくcron.phpが実行されることを確認しました。
復旧確認
Nextcloudに管理者権限でログインし、管理>概要へと進みます。
エラーはなくなりました。もう一つの警告画面はまた改めて対処します。
コメントを残す