Nextcloud可以通過插件實現與Onlyoffice的無縫集成,後者是一個開源的在線查看、編輯office文檔的工具。Onlyoffice的官方網址是:https://www.onlyoffice.com. 要實現二者的無縫集成,首先需要安裝配置Onlyoffice Document Server,然後爲Nextcloud安裝對應的插件並完成配置。
本文所安裝的onlyoffice的版本爲5.5.1;nextcloud的版本號爲18.0.3
一、使用Docker快速安裝部署Onlyofiice Document Server
1. 安裝配置Docker環境
有關Docker環境的配置,可以參考菜鳥教程相關教程的相關頁面(https://www.runoob.com/docker/ubuntu-docker-install.html)這裏不在贅述。
2. 下載Onlyoffice/DocumentServer鏡像
$ docker pull onlyoffice/documentserver
命令執行後可以看到具體的下載進度,由於鏡像文件較大(約500MB,解壓縮後約2GB),下載的時間可能較長,國內用戶建議選擇上午下載,速度較快。如果下載成功,將可以看到下載的鏡像的信息:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
onlyoffice/documentserver latest d06214a03e27 2 weeks ago 2.14GB
如果提示沒有權限,可以在命令前加上sudo,或者賦予當前用戶運行docker命令的權限,給當前用戶賦權的操作可參考第一步中的菜鳥教程的頁面。
3. 運行容器
運行以下代碼已創建容器並啓動它:
$ docker run -itd \
--name onlyoffice \
-p 9000:443 \
-p 9080:80 \
-v $(pwd)/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v $(pwd)/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
onlyoffice/documentserver
如果容器啓動成功,可以通過一下命令查看容器狀態:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b10cb4ca780b onlyoffice/documentserver "/bin/sh -c /app/ds/…" 3 hours ago Up 59 minutes 0.0.0.0:9080->80/tcp, 0.0.0.0:9000->443/tcp onlyoffice
4. 配置https證書
使用自己創建的根證書爲Onlyoffice document server簽署證書,具體過程請參看《使用Docker技術部署NextCloud》一文的第六部分。需要注意的是一定要將證書的CommonName設置爲網站的域名(不帶https和端口號),否則在後面配置nextcloud訪問onlyoffice部分的時候會報錯。
爲Onlyoffice document server開啓https的過程很簡單,只需要在$(pwd)/onlyoffice/DocumentServer/data下創建certs目錄,並將私鑰和證書文件放置其中即可,筆者的$(pwd)/onlyoffice/DocumentServer/data/certs目錄內容如下:
$ ls -l $(pwd)/onlyoffice/DocumentServer/data/certs
total 8
-rwxr-xr-x 1 lxd syslog 1558 Apr 21 06:55 onlyoffice.crt
-rwxr-xr-x 1 lxd syslog 1679 Apr 21 06:55 onlyoffice.key
5. 關閉客戶端證書認證
默認情況下,onlyoffice會對客戶端的證書進行認證,由於我們使用的是自簽署證書,所以認證肯定無法通過,因此我們選擇關閉相應的認證,具體的關閉方法是修改容器中/etc/onlyoffice/documentserver/default.json文件,爲此,我們需要首先將文件拷貝出容器,做出相應的修改後在拷貝回去。從容器中拷貝配置文件到當前目錄的命令爲:
$ docker cp nextcloud:/etc/onlyoffice/documentserver/default.json .
拷貝出文件以後,使用任何文本編輯器,查找“rejectUnauthorized"設置項,並將其值更改爲“false”。筆者更改後該設置項的上下文文本片段如下:
"requestDefaults": {
"headers": {
"User-Agent": "Node.js/6.13"
},
"rejectUnauthorized": false
},
將文件拷貝回容器的命令如下:
$ docker cp default.json nextcloud:/etc/onlyoffice/documentserver/default.json
6. 重啓容器一使配置生效
$ docker restart onlyoffice
至此,Onlyoffice 的 Document server配置完成,可以通過瀏覽器訪問 https://<your-domain>:9000/看到 “Document Server is running”的頁面了