后台任务 以下是nextcloud官方对于后台任务的解释:
诸如Nextcloud之类的系统有时需要定期执行任务,而无需用户交互或妨碍Nextcloud性能。为此,作为系统管理员,您可以定义无需用户交互就可以执行的后台作业(例如,数据库清理)。
这些作业通常称为cron作业。Cron作业是命令或基于Shell的脚本,它们计划在固定的时间,日期或间隔定期运行。 cron.php是Nextcloud内部流程,可按需运行此类后台作业。
Nextcloud应用程序会cron.php自动注册操作,以执行典型的内部管理操作,例如临时文件的垃圾收集或使用filescan()外部安装的文件系统检查新近更新的文件。
打开nextcloud后面的设置–基本设置大致可分为三种后台任务:
Ajax Webcron Cron 这三种模式,默认采用的是Ajax,但是对于较大的实例,就需要使用Cron这种模式了。 ———————————————— 配置方法
可以看到要求是: 使用系统定时任务服务每5分钟执行一次cron.php文件。 cron.php 需要被系统用户 “www” 执行。
nextcloud后台任务
可以看到官方要求是两点,一个要5分钟执行一次文件,还有要被www执行
如果你和我一样是nginx,那么只需要在nextcloud的安装根目录下给www权限即可,Apache的话可能是www-data
开启cron和宝塔计划任务
1.进入nextcloud管理员设置面板,在基本设置->后台任务中,修改定时任务执行方式为cron。
2.进入宝塔面板,在计划任务中配置shell脚本语句为: - sudo -u www php /www/wwwroot/PathToNextcloud/cron.php
复制代码如果装有多个版本php服务,需要指定php程序路径,相应脚本如下: - sudo -u www /www/server/php/80/bin/php -f /www/wwwroot/shjyy.cn/cron.php
复制代码
在这一步时出了点小问题,运行cron.php计划任务命令时,出现如下提示: - OCP\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)
复制代码
自nextcloud 21起,需要在php配置下加上 apc.enable_cli=1 ,才能保证apcu缓存正常工作
首先在宝塔面板的终端中输入php --ini,查看输出,我这里为 - Configuration File (php.ini) Path: /www/server/php/80/etc
- Loaded Configuration File: /www/server/php/80/etc/php-cli.ini
- Scan for additional .ini files in: (none)
- Additional .ini files parsed: (none)
复制代码
发现宝塔安装的php-8.0版本在cli模式下加载的配置文件是php-cli.ini,不是php.ini文件,所以这里要修改php-cli.ini配置文件。
解决方法是打开宝塔中的 /www/server/php/80/etc/php-cli.ini配置文件,查找“apc.enable_cli”设置项,修改为如下代码: |