Nextcloud エラーログ
たまたま基本設定画面をみたとき、バックグラウンドジョブが10日ほど実行されていないというメッセージが表示されました。Nextcloud のエラーログを見ると、下のようなメッセージが大量に出ています。
Trying to access array offset on value of type bool at /home/(user ID)/hogehoge.net/public_html/apps/files_versions/lib/Storage.php#653
調べてみたところ次のようなことでした。
php のバージョンを7.4にしたことで生じたエラーメッセージのようです。なので Xserver のサーバーパネルから、php のバージョンを7.3に戻しました。
ただ今回は cron.php が実行されていなかったことが問題なので引き続き調べてみると、次のようなスレッドがありました。
cron.php の実行には CGI版ではなく、コマンドライン版を使うほうが良いということで、Xserver のサーバーパネルから cron の設定を変更しました。
具体的には /usr/bin/php7.3-cgi を /usr/bin/php7.3 とします。
/usr/bin/php7.3 -f /home/(user ID)/hogehoge.net/public_html/cron.php
これで、とりあえずエラーログは出なくなり、cron.php も無事、実行されるようになりました。
ちなみに、ssh でリモートログインして php7.4のCGI版で cron.php を実行すると、つぎのようなメッセージが出ます。
$ /usr/bin/php-fcgi7.4 -f /home/(user ID)/hogehoge.net/public_html/cron.php
PHP Notice: Undefined index: SCRIPT_FILENAME in /home/(user ID)/hogehoge.net/public_html/lib/base.php on line 147
PHP Notice: Undefined index: SCRIPT_NAME in /home/(user ID)/hogehoge.net/public_html/lib/base.php on line 154
PHP Notice: Undefined index: SCRIPT_FILENAME in /home/(user ID)/hogehoge.net/public_html/lib/base.php on line 155
PHP Fatal error: Uncaught Error: Call to a member function getLogger() on null in /home/(user ID)/hogehoge.net/public_html/cron.php:162
Stack trace: