如何将OnlyOffice与NextCloud集成

 原作者:XiaoGuo An 转载来源:https://www.linuxbabe.com/ubuntu/integrate-nextcloud-onlyoffice

 

如何将OnlyOffice与NextCloud集成

 

借助于 2017年2月发布的ownCloud OnlyOffice集成应用程序,ownCloud用户可以使用OnlyOffice在线编辑器直接从他们自己的Cloud安装编辑Office文档  。现在,OnlyOffice已更新其集成应用程序以添加对Nextcloud的支持。本教程将向您展示如何  使用Nextcloud OnlyOffice集成应用程序将OnlyOffice与 Nextcloud集成。

Nextcloud OnlyOffice集成应用程序的功能:

  • 功能齐全的文本编辑器,可在线使用桌面编辑器的所有功能。
  • 100%查看,转换,打印和分页保真度。
  • 添加链接,表格和图表,插入图像,自动形状,公式和文本对象并操纵它们,创建项目符号或编号列表等。
  • 与团队成员进行实时协作编辑:立即显示更改或仅在保存后显示更改。使用评论和内置聊天,审核和跟踪更改。
  • 支持最流行的格式:编辑DOCX,XLSX,PPTX,TXT文件并保存在ODT,ODS,ODP,DOC,XLS,PPT,PPS,EPUB,RTF,HTML,HTM中。

要完成本指南,您需要

  • 有一个工作的Nextcloud服务器。如果尚未安装,请参阅Ubuntu上Nextcloud安装教程
  • 安装在HTTPS中运行的OnlyOffice文档服务器
  • 在Nextcloud服务器上安装Nextcloud OnlyOffice集成应用程序

OnlyOffice文档服务器和Nextcloud服务器可以安装在两个不同的主机上让我们开始吧。

 

安装ONLYOFFICE文件服务器

请注意,OnlyOffice文档服务器至少需要2GB的RAM。建议额外增加2GB的交换空间。OnlyOffice文档服务器依赖于PostgreSQL,Node.js,Redis Server,RabbitMQ服务器和Nginx。以下步骤在Ubuntu 16.04服务器上进行测试,但也应适用于其他基于Debian的Linux发行版

 

从Ubuntu存储库安装PostgreSQL

sudo apt install postgresql

然后创建onlyoffice数据库。

sudo -u postgres psql -c "CREATE DATABASE onlyoffice;"

创建onlyoffice用户。

sudo -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"

授予权限。

sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"

 

从官方存储库安装NodeJS

OnlyOffice文档服务器需要nodejs 8.0+,但Ubuntu存储库中的版本已过时,因此我们需要从上游存储库安装最新的Node.js LTS版本(8.12.0)。

添加Node.js repostiory。

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

安装Node.js.

sudo apt install nodejs

检查Node.js版本。

node -v

样本输出:

v8.12.0

 

安装Redis服务器和Rabbitmq

sudo apt install redis-server rabbitmq-server

检查他们的状态。

systemctl status redis-server

systemctl status rabbitmq-server

您应该看到它们处于活动状态(正在运行)。如果rabbitmq-server无法启动,那主要是因为计算机内存不足或主机名无效。

 

安装OnlyOffice文档服务器

使用以下命令添加OnlyOffice存储库。

echo "deb http://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list

导入OnlyOffice公钥。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5

更新本地程序包索引并安装OnlyOffice文档服务器。请注意,Nginx将作为Web服务器安装,因此如果Apache正在运行,您可能需要停止它。

sudo apt update

sudo apt install onlyoffice-documentserver

在安装过程中,系统会要求您仅输入PostgreSQL密码。输入“onlyoffice”(不带双引号)。

onlyoffice文件服务器安装

您还需要接受Microsoft许可条款才能从Microsoft安装TrueType核心字体。

在ubuntu 16.04上安装onlyoffice文件服务器

安装完成后,在Web浏览器中输入服务器的公共IP地址,您应该看到“文件服务器正在运行”

onlyoffice文件服务器

 

启用HTTPS

要将NextCloud连接到OnlyOffice文档服务器,后者必须以HTTPS模式运行。以下步骤说明如何获取和安装Let的加密TLS证书。

编辑  /etc/nginx/conf.d/onlyoffice-documentserver.conf 文件。

sudo nano /etc/nginx/conf.d/onlyoffice-documentserver.conf

更改配置如下。不要忘记为其设置A记录onlyoffice.your-domain.com

include /etc/nginx/includes/onlyoffice-http.conf;
server {
  listen 0.0.0.0:80;
  listen [::]:80 default_server;
  server_name onlyoffice.your-domain.com;
  server_tokens off;

  include /etc/nginx/includes/onlyoffice-documentserver-*.conf;

  location ~ /.well-known/acme-challenge {
        root /var/www/onlyoffice/;
        allow all;
  }
}

保存并关闭文件。重新加载Nginx以使更改生效。

sudo systemctl reload nginx

然后安装certbot(Let's Encrypt)客户端。

sudo apt install letsencrypt

接下来,运行以下命令以使用webroot插件获取免费的TLS证书。

sudo letsencrypt certonly --webroot --agree-tos --email your-email-address -d onlyoffice.your-domain.com -w /var/www/onlyoffice/

在几秒钟内,您将看到如下所示的消息,这意味着已成功获取TLS证书。

onlyoffice https

编辑  onlyoffice-documentserver.conf文件。

sudo nano /etc/nginx/conf.d/onlyoffice-documentserver.conf

删除该文件中的所有内容,并将以下文本粘贴到该文件中。相应地更改红色文本。

include /etc/nginx/includes/onlyoffice-http.conf;
## Normal HTTP host
server {
  listen 0.0.0.0:80;
  listen [::]:80 default_server;
  server_name onlyoffice.your-domain.com;
  server_tokens off;
  ## Redirects all traffic to the HTTPS host
  root /nowhere; ## root doesn't have to be a valid path since we are redirecting
  rewrite ^ https://$host$request_uri? permanent;
}
#HTTP host for internal services
server {
  listen 127.0.0.1:80;
  listen [::1]:80;
  server_name localhost;
  server_tokens off;
  include /etc/nginx/includes/onlyoffice-documentserver-common.conf;
  include /etc/nginx/includes/onlyoffice-documentserver-docservice.conf;
}
## HTTPS host
server {
  listen 0.0.0.0:443 ssl;
  listen [::]:443 ssl default_server;
  server_name onlyoffice.your-domain.com;
  server_tokens off;
  root /usr/share/nginx/html;
  
  ssl_certificate /etc/letsencrypt/live/onlyoffice.your-domain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/onlyoffice.your-domain.com/privkey.pem;

  # modern configuration. tweak to your needs.
  ssl_protocols TLSv1.2;
  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
  ssl_prefer_server_ciphers on;

  # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
  add_header Strict-Transport-Security max-age=15768000;

  ssl_session_cache builtin:1000 shared:SSL:10m;
  # add_header X-Frame-Options SAMEORIGIN;
  add_header X-Content-Type-Options nosniff;
 
  # ssl_stapling on;
  # ssl_stapling_verify on;
  # ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt;
  # resolver 208.67.222.222 208.67.222.220 valid=300s; # Can change to your DNS resolver if desired
  # resolver_timeout 10s;
  ## [Optional] Generate a stronger DHE parameter:
  ##   cd /etc/ssl/certs
  ##   sudo openssl dhparam -out dhparam.pem 4096
  ##
  #ssl_dhparam {{SSL_DHPARAM_PATH}};

  location ~ /.well-known/acme-challenge {
     root /var/www/onlyoffice/;
     allow all;
  }
  include /etc/nginx/includes/onlyoffice-documentserver-*.conf;
}

 

保存并关闭文件。然后测试Nginx配置并重新加载。

sudo nginx -t

sudo systemctl reload nginx

访问https://onlyoffice.your-domain.comWeb浏览器以验证OnlyOffice文档服务器是否在HTTPS模式下正常运行。

onlyoffice nextcloud

 

安装Nextcloud OnlyOffice集成应用程序

SSH进入Nextloud服务器,然后将目录更改为Nextcloud apps目录。

cd /var/www/nextcloud/apps/

接下来,使用以下命令下载Nextcloud OnlyOffice集成应用程序。

sudo git clone https://github.com/ONLYOFFICE/onlyoffice-owncloud.git onlyoffice

然后转到Nextcloud Apps页面,单击Not Enabled选项卡并启用OnlyOffice应用程序。

nextcloud onlyoffice集成应用程序

 

之后,转到Nextcloud管理页面,选择Additional Settings左窗格中的选项卡,然后在文档编辑服务地址字段中输入OnlyOffice的域名。

nextcloud onlyoffice app

保存上述设置后,您应该可以通过单击加号(+)按钮在Nextcloud中创建文档,spreedsheets和演示文件。将打开一个单独的选项卡进行编辑。

nextcloud onlyoffice

您还将在office文档的上下文菜单中看到一个名为“Open in OnlyOffice”的新项目。

 

在同一主机上安装OnlyOffice文档服务器和Nextcloud

OnlyOffice Document服务器使用Nginx作为Web服务器。

如果现有的Nextcloud服务器与Nginx一起运行,那么在同一台机器上安装OnlyOffice时,对Nextcloud服务器没有任何损害。它将删除nginx-core并安装nginx-extras软件包,因此会有一些停机时间,但您的配置将完好无损。

如果现有的Nextcloud服务器与Apache Web服务器一起运行,并且您想在同一台计算机上安装OnlyOffice,那么您有两个选择:

 

将Nginx配置为Apache的反向代理

如果选择第二个路由,则应在安装OnlyOffice文档服务器之前首先更改Apache的端口号。

编辑ports.conf文件。

sudo nano /etc/apache2/ports.conf

找到这一行:

Listen 80

将其更改为不同的端口号,如8180.请注意,此处不应使用8080,因为OnlyOffice文档服务器需要端口8080才能启动其docservice。

Listen 8180

您还应该更改SSL端口号,因为稍后Nginx将执行SSL终止。找到这一行:

Listen 443

将端口号更改为4433。

Listen 4433

保存并关闭文件。接下来,编辑Nextcloud的虚拟主机文件。

sudo nano /etc/apache2/sites-enabled/nextcloud.conf

第一行应该是这样的:

<VirtualHost *:80>

将端口号更改为8180。

<VirtualHost *:8180>

我们还应该通过在以下行之前添加注释字符来禁用将HTTP重定向到HTTPS。(您的Nextcloud服务器正在使用HTTPS连接,对吧?)

#RewriteEngine on
#RewriteCond %{SERVER_NAME} =nextcloud.your-domain.com
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

并更改SSL侦听端口。

<VirtualHost *:443>

将以上端口更改为4433.保存并关闭该文件。重新加载Apache配置。

sudo systemctl reload apache2

现在Apache侦听端口8180和4433.然后我们可以按照上面的说明安装OnlyOffice文档服务器,它将在此过程中安装Nginx。

安装OnlyOffice文档服务器和Nginx后,创建一个Nginx服务器块文件以代理对Apache的请求。

sudo nano /etc/nginx/conf.d/nextcloud-proxy.conf

将以下行添加到该文件中。用您自己的域名替换域名。该路径 ssl_certificatessl_certificate_key对咱们加密颁发的证书。如果您使用其他CA颁发的证书,则应输入自己的路径。

server {
        listen 80;
        server_name nextcloud.your-domain.com;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443 ssl http2;
        server_name nextcloud.your-domain.com;

        ssl_certificate /etc/letsencrypt/live/nextcloud.your-domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/nextcloud.your-domain.com/privkey.pem;

        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:10m;
        ssl_session_tickets off;
        ssl_protocols TLSv1.1 TLSv1.2;

        add_header Strict-Transport-Security max-age=15768000;

        ssl_ciphers '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';
        ssl_prefer_server_ciphers on;

        location / {
                proxy_pass http://127.0.0.1:8180;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

location / {...}部分将所有请求重定向到侦听端口8180的Apache Web服务器。保存并关闭该文件。然后测试Nginx配置。

sudo nginx -t

如果语法正常,请重新加载Nginx。

sudo systemctl reload nginx

现在,您应该可以像往常一样访问Nextcloud服务器,而无需在URL中添加端口号。如果您使用以下cURL命令来获取HTTP标头,那么您应该看到前端服务器是Nginx。

curl -I https://nextcloud.your-domain.com

样本输出:

HTTP/1.1 302 Found
Server: nginx/1.11.9
Date: Tue, 14 Mar 2017 08:55:30 GMT
Content-Type: text/html; charset=UTF-8

 

 

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值