本文演示在VPS上配置Nextcloud+CollaboraOffice实现文档在线预览
这个Office文档在线预览功能是基于Nextcloud Collabora Online插件和在Docker上跑的Collabora Office。
通过Apache反向代理将Collabora Office代理至443端口,供Nextcloud通过HTTPS访问。
首先安装Docker
sudo apt-get install docker.io
从DockerHub中拉取镜像:
sudo docker pull collabora/code
Using default tag: latest
latest: Pulling from collabora/code
8aec416115fd: Pull complete
695f074e24e3: Pull complete
946d6c48c2a7: Pull complete
bc7277e579f0: Pull complete
2508cbcde94b: Pull complete
db0e063f8c96: Pull complete
698261b49ccf: Pull complete
c8427a52a3b3: Pull complete
启动镜像:
docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.orgleaf\\.com' --restart always --cap-add MKNOD collabora/code
如果要让这个Collabora Office同时服务于多个域名的话,需要在两个不同域名之间加上\|,例如:
'domain=cloud\\.nextcloud\\.com\|second\\.nexcloud\\.com'
查看镜像是否启动:
root@cloud:/etc/apache2/sites-available# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bcf8fe64b0ae collabora/code "/bin/sh -c 'bash sta" 1 second ago Up 1 second 127.0.0.1:9980->9980/tcp silly_stallman
激活Apache扩展:
a2enmod proxy proxy_wstunnel proxy_http ssl
激活扩展后,创建一个新的虚拟主机文件,把下面的内容粘贴进去:
注意要把<VirtualHost office.orgleaf.com:443>和ServerName office.orgleaf.com:443中的office.orgleaf.com替换为你自己的域名。
<VirtualHost office.orgleaf.com:443>
ServerName office.orgleaf.com:443
# SSL证书配置,请将SSLCertificateFile SSLCertificateChainFile指向你自己的证书
SSLEngine on
SSLCertificateFile /path/to/signed_certificate
SSLCertificateChainFile /path/to/intermediate_certificate
SSLCertificateKeyFile /path/to/private/key
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder on
#下面的内容不要修改!!
# 允许编码斜杠
AllowEncodedSlashes NoDecode
#容器使用唯一的非签名证书
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
#keep the host
ProxyPreserveHost On
# static html, js, images, etc. served from loolwsd
# loleaflet is the client part of LibreOffice Online
ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet
# WOPI discovery URL
ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery
# Main websocket
ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon
# Admin Console websocket
ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws
# Download as, Fullscreen presentation and Image upload operations
ProxyPass /lool https://127.0.0.1:9980/lool
ProxyPassReverse /lool https://127.0.0.1:9980/lool
</VirtualHost>
另附Nginx方向代理的配置:
server { listen 443 ssl; server_name collabora.example.com; ssl_certificate /path/to/ssl_certificate; ssl_certificate_key /path/to/ssl_certificate_key; # static files location ^~ /loleaflet { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; } # WOPI discovery URL location ^~ /hosting/discovery { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; } # main websocket location ~ ^/lool/(.*)/ws$ { proxy_pass https://localhost:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } # download, presentation and image upload location ~ ^/lool { proxy_pass https://localhost:9980; proxy_set_header Host $http_host; } # Admin Console websocket location ^~ /lool/adminws { proxy_pass https://localhost:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } }
完成配置后,保存退出。
重启Apache:
systemctl restart apache2
到Nextcloud->apps激活Collabora Online插件
点击“应用”,完成设置。
回到首页,点击“+”创建Office文档:
点击创建好的文档文件:
Enjoy it!
本文由 橙叶博客 作者:FrankGreg 发表,转载请注明来源!
局域内的出个教程
请见:<a href="https://www.orgleaf.com/3589.html">在内网中使用自签名证书搭建Nextcloud X ONLYOFFICE Documentserver(Docker)</a>
大神你好,我是centos系统用的宝塔面板搭建的nextcloud,也想加Collabora Office这个功能,能否都配置到这台机器上?怎么做?
登入命令行,如果有root权限的话,一切如上
你好我部署的 爱去提提屁哎死 的域名显示不是受信用的域名
自签名吗,自签名就是这样
感谢楼主分享。
我使用 Collabora Office 在线编辑文档时,英文和数字输入都正常,输入汉字时总是重复显示;例如 输入博客 文档上显示博客博客;
这个问题怎么解决呢?
我的也是。不知道怎么解决。汉字打一字会出现两个。
不docker 就装不了了?
为什么我看你的代码块都没法滚动,只能看见一部分
一样
有一个问题求教大家: collabora office同时支持多少人协作编辑文档,谢谢!
一直提示“很抱歉,无法连接到您的文档。请重试”
怎么办,有人知道吗
请教,要在局域网内搞要怎么设置,企业内部网,不用SSL。谢谢
如果域名要加端口,怎么加吗?
如果域名要加端口的话怎么加吗?
sudo docker pull collabora/code
这一步非常的慢,而且一直失败。如何处理呀?
Docker 中国官方镜像加速:
<a href="http://www.docker-cn.com/registry-mirror" rel="nofollow ugc">http://www.docker-cn.com/registry-mirror</a>
2个子域名,分别用于Collabora Office和Nextcloud,且两个域名均拥有合法SSL证书。例如:cloud.orgleaf.com用于访问Nextcloud,office.orgleaf.com用于部署Collabora Office
还是没弄好
最近安装好collabora后提示:无法打开文件,文件是否格式不正确或者已损坏。明明管理界面都能进,不久前还安装成功过。onlyoffice安装后就可以用。
你好,你的onlyoffice是怎么安装的,我这边不能集成到nextcloud上,可以发操作说明吗
没有域名只有IP的话这里要如何写?docker run -t -d -p 127.0.0.1:9980:9980 -e ‘domain=cloud\\.orgleaf\\.com’ –restart always –cap-add MKNOD
感谢博主提供的资料,目前已经成功在centOS7搭建了Nginx+docker;DB+docker:nextcloud+docker:onlyoffice/collabora office
—
自己在简书总结了一下过程,给后来人参考。地址www.jianshu.com/p/287ac71ef6c5
启动容器后,最好重新启动一下docker服务,systemctl daemon-reload,可以解决大部分不可知的问题,比如建立文档后无法打开等。
——————————————————————————
感谢博主提供的资料,目前已经成功在centOS7搭建了Nginx+docker;DB+docker:nextcloud+docker:onlyoffice/collabora office
启动镜像的命令应该是docker run -t -d -p 127.0.0.1:9980:9980 -e ‘domain=cloud\\.orgleaf\\.com’ –restart always –cap-add MKNOD collabora/code
domain的主机地址的小数点前面应该是两个\
谢谢提醒~已更正
博主你应该搭建维护一个个公共平台,这样我们这种小白而且使用频率不高的人,就可以付费使用您的平台了。
因为手头上没有空余的主机,所以没有做.谢谢你的提议,我会考虑的.
部署需要多大内存啊?我1核1gb内存的主机,只部署了nextcloud,再部署onlyoffice或者collabora都启动不起来。(我都是基于docker的),部署完nc之后,剩余内存还有400多M啊
1GB估计是有些吃紧的,尤其是对于onlyoffice来说.建议2GB
麻烦问下 能否只安装Collabora Office
我Nextcloud 已经再另外一台服务器安装好了
可以
我现在全部安装好了 但是打开文档提示 很抱歉,无法连接到您的文档。请重试
域名未做解析 全部用的HOSTS 指向
collabora online 后台打开正常
域名证书 正常
是必须要做解析的原因吗?
collabora会去访问nextcloud获得文件,只用hosts的话,collabora解析Nextcloud实例的地址的话就会出错
大佬 麻烦再问下 Nextcloud 文本文件 中文乱码 怎么解决呢 我如果转换UTF8 这样WINDOWS 上面又乱码了
使用Windows记事本保存时,保存按钮左边有编码的选项,选择”utf-8″即可。
为什么安装完成后一打开office文件就会提示“文件已损坏”?collabora 的界面已经出来了,但就是无法打开文档。
如果把之前报not found的那个container停止掉,重新建新的container,log里的报错就都成了SAXParseException: Invalid token in ‘/etc/loolwsd/loolwsd.xml’, line 88 column 100,最近搞这个遇到好多麻烦,找了国内国外各种论坛和帖子,到最后这里卡住了一点方法都没有……
您好,我按照教程中的做完了一遍,也参考了其他教程和CODE的官方文档,但在owncloud里显示“Collabora Online unknown error: Client error response [url] <a href="https://office.bitoncloud.ml/hosting/discovery" rel="nofollow ugc">https://office.bitoncloud.ml/hosting/discovery</a> [status code] 404 [reason phrase] Not Found 请联系管理员”,之后从docker container的log里发现一句“wsd-00025-00026 08:49:22.863844 [ prisoner_poll ] WRN ForKit not responsive for 5168 ms forking 1 children. Resetting.| wsd/LOOLWSD.cpp:355”应该是container没有启动成功,按谷歌上论坛里找的方法重启了docker、container和apache之后还是一样的错误,怎么回事,求解,谢谢!
大侠,网上nextcloud的文章太少了,最近拜读获益匪浅。
请推荐或者有空写个nextcloud有关OAuth2.0的文档例子
谢谢
谢谢博主指点,已配置好,请教一个问题:
PPT在经过在线编辑后,即使添加几个字符,会变小,然后在iOS上不能正确打开,无论是客户端还是web都不行,提示:ERROR_MESSAGE_MAIN
The file fomat is invalid。但这个PPT在电脑上可以正确打开,用的是office2007。
doc和excel都没问题。
你好,我问一下,你的图片是储存在阿里云还是七牛云呢,怎么让外链支持https
阿里云,我是将OSS+CDN,然后在CDN上配置HTTPS
能讲一下教程吗,我现在博客的问题就是网站图片是阿里云对象储存,网站加了https
首先需要这两个插件CDN Enabler(替换静态文件URL,可以使用其它的代替)、OSS Upload(自动上传图片、替换图片URL)。
添加一个DNS比如static.zunyipub.com。
将网站的图片等内容转移到OSS中,然后在CDN控制台添加上面的域名,源站选择OSS,域名指向CDN的CNAME。
在CDN Enabler中CDN URL填写添加的域名,其它的不用动
在OSS Upload填写OSS的信息,这个插件有详细的文档。
昨天开始没仔细看你的回复“将OSS+CDN,然后在CDN上配置HTTPS”;后面又来看了一下,在cdn加了http-https的规则,然后sql语句替换了wp-posts的文章http全部为https,除了七牛云的外链没有配置https外,基本解决了,感谢你的回复!
求助大神我的点office文档后报:
内部服务器错误
服务器发生一个内部错误并且无法完成你的请求.
如果多次出现这个错误, 请联系服务器管理员, 请把下面的技术细节包含在您的报告中.
更多细节可以在服务器日志中找到.
技术细节
远程地址: 10.238.20.12
请求 ID: EsxJ2j1hIeBqCYeMEItd
怎么处理,谢谢!
这个我真心不知道是什么问题。你可以先检查下docker是否运行正常
求救,升级Ubuntu内核到4.14以后,docker不能启动了,出现Cannot connect to the Docker daemon. Is the docker daemon running on this host?。。重安装返回如下:● docker.service – Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2017-11-28 02:58:33 UTC; 4ms ago
Docs: <a href="https://docs点docker点com" rel="nofollow ugc">https://docs点docker点com</a>
Process: 3666 ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS (code=exited, status=1/FAILURE)
Main PID: 3666 (code=exited, status=1/FAILURE)
怎么搞啊?
百度一下重装docker
小白又来求助了:为什么collaboration打开协作文档总是显示错误,重启Apache就好了。一会儿又错误。log记录是“curl error 51 ”我查是“远程服务器的 SSL 证书或 SSH md5 指纹不正确”,这个怎么解决啊?
多谢了!
这个我还真没遇到过,可能是你的证书的问题
又来这里了,nextcloud的已SSL装好了,collaboration按视频做到安装SSL了,可是选项里面只有cloud一个域名,没有office域名,是怎么回事啊?期待答复
谢谢。
检查一下/etc/apache/sites-available/目录下的配置文件是否存在
解决了,建了一个域名.conf的文件,然后开启虚拟host,你的秘籍里没有说开启虚拟host这一步。:)。最后都成了,十分感谢您!best regards for you!
求救,升级Ubuntu内核到4.14以后,docker不能启动了,出现Cannot connect to the Docker daemon. Is the docker daemon running on this host?。。重安装返回如下:● docker.service – Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2017-11-28 02:58:33 UTC; 4ms ago
Docs: <a href="https://docs点docker点com" rel="nofollow ugc">https://docs点docker点com</a>
Process: 3666 ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS (code=exited, status=1/FAILURE)
Main PID: 3666 (code=exited, status=1/FAILURE)
怎么搞啊?
你好,我看你的演示是用一个服务器做的对吧,用子域名新建两个虚拟主机,是这样的吗
是的ヽ(*・ω・)ノ
谢谢分享,我先看了后面试试,最近刚好再找这个
你好,咨询个问题。我是局域网,系统是ubuntu ,我通过sudo snap info nextcloud安装的nextcloud,想在同一服务器中布置Collabora Office,
docker run -t -d -p 127.0.0.1:9980:9980 -e ‘domain=192\.168\.8\.126’ –restart always –cap-add MKNOD collabora/code
这里进行完了,接下了应该怎么弄呢,谢谢
然后就是反向代理。你的部署方法我没用过也不是很了解。。。可以参考一下文字教程以及视频教程
你好 我部署了2台阿里云服务器 都分配了阿里云办法的个人证书 也配置好 都使用的nginx反向代理 ,打开文档提升很抱歉无法打开文档请重试,
这个问题我还真没遇见过,你检查下Nginx反向代理的配置有没有问题
不知道为什么突然好了 什么也没改 请问nextcloud 支持ldap吗
支持
请问你知道如果我用在企业 有限制吗?官方我看了下说的不是很清楚,有没有限制,唯一就是服务区别
搭建好了访问出现的不是off在线编辑器是出现httpd的见面,是怎么访问
这个可能是配置错误,再检查下吧。看看错误码是什么,可能是Docker镜像没有正常启动
Nextcloud+Collabora Office文档在线协作
大神,有个事请教下,我根据你的教程搭建了Nextcloud+Collabora Office,但是我用的是nginx,所以我是直接反代过去的,发现可以打开Collabora页面,但是就是无法打开文件,后来发现教程中反代的地址有wss协议的,请问这个要怎么解决?
博主,最近在游三峡,爬雪山,需要回来回复你
在location块中加入:
proxy_set_header Connection $connection_upgrade;
即可
博主你好,谢谢你的回答,我按照你的方法加上了之后,保存的时候提示这个错误呢:nginx: [emerg] unknown “connection_upgrade” variable,请问是要定义什么东西吗?
附上图片:https://blog点yonghsu点cn/wp-content/uploads/2017/08/2017_8_22_004314.png
噫?博主禁止发链接呢,好吧,我改了下链接。。。
你好,博主,谢谢你的回复,我终于找到官方文档了,现在已经解决了,感谢!
倚竹聽雨
你怎么解决的呀?能分享一下吗? 我也碰到这个问题
博主你好,请问我按照你上面的步骤,在centos7上用docker创建了Collabora的容器,在nextcloud也安装了插件,的确是可以创建office的word文档,但是当我点击这个新建的word文档时,你跳到另一个页面,显示访问禁止,请问这是什么原因?
1.你看一下启动Docker时用的哪个域名,应该用访问Nextcloud用的域名。2.关掉SElinux
博主你好,我目前的安装环境没有域名,只是用IP地址直接访问的。SSL证书也只是用自签名证书。iptables和selinux都已经关闭的。请问是不是没有域名就不可以呢?现在在CentOS7和Ubuntu16.04系统上都安装,结果当点击office文档,都会跳转到“访问禁止”的页面。
启用docker时是:docker run -t -d -p 127.0.0.1:9980:9980 –restart always –cap-add MKNOD collabora/code:2.1.2,没有使用域名的情况下。
请问可以和nextcloud安装在同一台服务器吗?我用的是centos,可以告知方法吗?谢谢
可以的,过程基本上相同。
就我的环境能否发个详细点的说明?还有就是同一台服务器上安装是否同一个证书即可或反向不启用HTTPS?求解
CentOS下安装docker:<code>yum install docker -y</code>其它的就都一样了,因为docker都是一个docker,apache用的也是一个apache(httpd),配置文件不用改。关于证书问题,尽量使用CA签名证书,可以使用自签名证书,不过使用时会提示“加载不安全脚本”。反向代理不启用HTTPS:可以,将配置文件的前两行的443改成80,第一行的主机名也去掉吧,把4~11行的内容都删掉或者注释掉。P.S.:CentOS使用的时候要把SELinux关掉。
谢谢,按你的方法进行测试一下。
请问可以在内网部署吗?不使用https证书
看起来很酷的样子
顺便问一下有什么好的密码管理方式么?
我老是在找回密码
不记下来怕忘
记下来怕被盗
可以试试KeePass
博主你好,按照你的教程安装后无法访问office界面,一直显示访问禁止,请问是怎么回事?
看下你的证书都配置好了么,注意docker命令中的域名的选取
我的证书是自签名证书,域名也是hosts里的写的虚拟证书