使用nextcloud的时候,系统更新后会发现提示数据库丢失了一些索引,通过手动执行 “occ db:add-missing-indices” 命令修复丢失的索引
OCC文件是使用php编译,所以我们用php命令来执行这个脚本(要保持工作目录一直与occ文件位于同一目录)。
但是在执行该命令的时候提示错误,需要这样执行代码:
www/wwwroot/nextcloud的安装目录
sudo -u www php occ db:add-missing-indices
如果提示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在cli模式下加载的是php-cli.ini,加载不到php.ini,所以光修改配置文件无法生效,解决方法是找到PHP的安装目录/www/server/php/XXXXX/bin/php,将php-cli.ini重新命名,再重启php,就会发现cron执行没有报错了,然后再将php-cli.ini改回原名。
再重新运行代码
www/wwwroot/nextcloud的安装目录
sudo -u www php occ db:add-missing-indices
发现问题解决