问题一,Collabora Online还是Only Office
个人建议使用OnlyOffice,它的性能表现要远好于Collabora,打开文档的时候加载速度极快,滚动表格时,不会有重绘动作。相比之下,在这块Collabora的体验相当糟糕,滚动条拉走,再拉回原位置的时候,居然也要重新绘制,并且这个过程十分耗时。
另外,不要使用内置的Community Document Server (onlyoffice built-in):
问题二,NextCloud 19.0.0的文档使用OnlyOffice在线编辑过后,无法更新文件状态,导致客户端同步失败,这是一个巨坑。
症状是:OnlyOffice编辑完一个表格,并关闭网页,在10秒延时后,向服务器发起请求,通知文件变更,并由NextCloud下载新的文件。
问题就出在这儿,从服务器可以看到通知能正常发出,但是服务器处理的时候,却只能更新文档,无法刷新包括修改时间、文件大小在内的文档属性。客户端无从得知文件被修改过,即使知道文件被修改过,也无法拿到文件大小,一直卡在“同步中”。
这个BUG应该由NextCloud和OnlyOffice各担一半责任:
- 使用Collabora Online不会出现这个问题,可能在更新文件以后,Collabora还会主动更新文件属性(猜测,未验证);
- OnlyOffice确实通知到了NextCloud服务器,NextCloud由于自身原因无法更新文档属性。
最后的修复办法:更新19.0.0到19.0.1,这个毛病不药而愈。当然,升级的过程也非常坎坷。
问题三,升级问题
或者说,这个不是单纯的升级问题,归根结底,它是一个网络问题。在国内访问nextcloud服务器的时候,速度非常感人,下载速度论K来计。而网络问题的典型症状是:
- 应用中心页面打不开,或者能打开但页面一片空白,如果幸运的话,在超时时间到之前,可以勉强打开,状况更糟的时候,应用设置页面都无法打开(因为无法联系应用服务器验证应用);
- 在线安装应用失败;
- 在线升级无法下载升级包,无法联系服务器验证应用信息。
问题1的解决方案
没有什么好的解决办法,好在应用设置页面打不开的情况不会很多,所以不会影响到应用的管理。
而如果需要安装应用,可以使用离线的方式来解决,流程是:
- 从https://apps.nextcloud.com 搜索应用 =>
- 下载自己NextCloud版本所对应的Release =>
- 上传到自己的NextCloud服务器 =>
- 解压到NextCloud安装目录的apps目录=>
- 回到网页的管理后台/settings/apps页面,启用相应的应用。
问题2的解决方案
升级
问题3的解决方案
升级过程分两大步:
- 从“设置”页面,点击“更新器”进入更新页面,这一步属于文件准备阶段,包括验证本地文件、备份、下载、权限检查、解压覆盖等操作;
- 完成第一步后,打开首页自动进入升级执行阶段,包括数据库更新、应用兼容性检查等操作。
升级过程会有两处地方会因为网络问题卡住导致失败:第一步的下载新版安装包动作、第二步中的应用验证。
第一步的失败在于网页响应具有超时时间,但网络不足以在超时前下完升级包,这时候后台其实还在跑任务,所以,可以在网页提示超时后,继续等待;也可以手工下载新版文件上传到服务器的data/update-xxx/downloads目录,并修改 data/update-xxx/.step文件,把当前步骤由4改为5,并把状态由start改为stop。在升级页面继续点击即可跳过下载步骤,继续升级。
第二步我每次尝试都会报错,最后根据页面提示,在服务器上运行了occ upgrade命令进行更新,这时候就可以正常跑完应用检查。回过头来再看第一步,其实也可以直接用命令行来升级程序,因为是命令行环境,所以也不用担心页面超时的问题,速度再慢也能正常跑完流程,时间长短的区别而已。
#update of code(第一步,文件准备)
sudo -u www-data php /path/to/nextcloud/updater/updater.phar
#upgrade(第二步,应用升级)
sudo -u www-data php occ upgrade
不算问题的问题,字体问题
OnlyOffice在编辑页面会加载所有字体,一个字体文件小则数百K,大则10几兆,字体稍微多放两个,页面打开就需要下载上百兆的内容。网上很多不负责任的教程只会教人无脑加字体,却从不考虑页面加载的问题。
如果希望在OnlyOffice中支持多种多样的字体,就会面临这个两难的问题:字体多了,网页加载会慢得让人无法忍受,字体少了,又会影响到线下编辑文档的样式。所以就需要做一个折衷的选择:
- 只放必要的字体,能不加就不加;
- 如果一个文档在线下编辑过,里面有很多字体、样式,那就避免在网页上改动它;
- 使用OnlyOffice兼容的字体,这样可以在线下线上任意修改而不用担心样式变形。
谨以此图献给耽误我这么多时间的大坑