Nextcloudのインストール後の設定で概要でのセキュリティチェックがパスしましたが、

管理>基本設定で

最終ジョブ実行は %s です。何か問題が発生しています。

と出ていますので、これの設定を行います。

動作を確認した環境

  • Ubuntu 20.04
  • Apache 2.4系
  • PHP8.1
  • Nextcloud 27.0.2

さっくりとした手順

  1. Nextcloud上で設定を変えます。
  2. 一度Cronを走らせます。
  3. Cron設定を行います。
  4. 動作を確認します。

Nextcloud設定変更

  1. Nextcloud>管理>基本設定に進みます。
  2. バックグラウンドジョブをCronに設定します。

Cron作動

NextcloudがインストールされたサーバにSSHログインし、以下を実行します。

sudo -u www-data /usr/bin/php /var/www/html/nextcloud/cron.php

# 自分がnextcloudをインストールした環境に合わせます。
# 筆者環境
# sudo -u www-data /usr/bin/php /home/www-data/nextcloud/cron.php

Cron実行確認

  1. Nextcloud>管理>基本設定に進みます。
  2. 以下のように「最終ジョブ実行は○分前です」が表示されることを確認します。

Cronログ設定

Ubuntu 20.04の初期設定はcronログの出力が無効になっているので、修正します。

cd /etc/rsyslog.d

sudo cp -pi 50-default.conf /path/to/backup/50-default.conf.$(date +%Y%m%d)
# 任意のバックアップディレクトリを指定します。

diff -u 50-default.conf /path/to/backup/50-default.conf.$(date +%Y%m%d)
# 差分がないことでバックアップされていることを確認します。
  • ファイル修正

教義・信仰に合わせたエディタで以下を修正します。

  • 修正前
#cron.*                         /var/log/cron.log
  • 修正後
cron.*                         /var/log/cron.log
  • 設定反映
sudo systemctl restart rsyslog.service

Cron登録

  • crontab起動
sudo -u www-data crontab -e
  • 追記内容
*/5 * * * * /usr/bin/php -f /var/www/nextcloud/cron.php
# 自分の環境に合わせます。
# 筆者環境
# */5 * * * * /usr/bin/php -f /home/www-data/nextcloud/cron.php
  • Cron登録確認
tail -50 /var/log/cron.log
  • BEGIN EDIT (www-data)
  • REPLACE EDIT (www-data)
  • END EDIT (www-data)

と表示されていれば、Cron登録は確認されています。

  • メール設定
  • config.phpの設定
  • メモリキャッシュの設定
  • redis-serverの組み込み
  • cron設定

が終われば、一応、初期準備は済んだと思います。