前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx服务配置篇·第五课:为Nextcloud配置安装onlyoffice保姆级教程

Nginx服务配置篇·第五课:为Nextcloud配置安装onlyoffice保姆级教程

原创
作者头像
我不是程序员110
发布2022-10-28 10:00:41
6.1K0
发布2022-10-28 10:00:41
举报
文章被收录于专栏:Ubuntu建站指南

结论放在开头

一、如果想装免费的社区版本,没必要。(另外两个收费版本的不知道,毕竟不是刚需,就不花这个额外的钱了)

缺点如下:

1.卡死在打开界面

2.免费的社区版不支持在线编辑

3.自带的NextcloudOffice已经支持在线编辑功能

二、这是一篇非常独特的文章,各大搜索平台搜不到详细的配置。这篇文章会带你进行详细配置

环境基础

Ubuntu20.04

Nginx

操作步骤

第一部分:安装OnlyOffice Document Server

抄作业环节,一共就10条左右命令,照抄完事,当然可以更改的地方我注释了。也可以看官方文档,一样的。

命令1:

代码语言:shell
复制
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

命令2:

代码语言:shell
复制
apt install libcurl4 libxml2 supervisor fonts-dejavu fonts-liberation ttf-mscorefonts-installer fonts-crosextra-carlito fonts-takao-gothic fonts-opensymbol

命令3:

代码语言:shell
复制
apt install postgresql

命令4:

代码语言:shell
复制
sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice;"
sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"	 #后面那个onlyoffice是密码,你自己可以设置
sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"

命令5:

代码语言:shell
复制
sudo apt-get install rabbitmq-server

命令6:

代码语言:shell
复制
sudo apt-get install nginx-extras

命令7:

代码语言:shell
复制
echo onlyoffice-documentserver onlyoffice/ds-port select | sudo debconf-set-selections 	# 换成你想用的端口号

这是最大的坑,需要特别注意,后面我会说明

命令8:

代码语言:shell
复制
mkdir -p ~/.gnupg
chmod 700 ~/.gnupg
gpg --no-default-keyring --keyring gnupg-ring:/tmp/onlyoffice.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
chmod 644 /tmp/onlyoffice.gpg
sudo chown root:root /tmp/onlyoffice.gpg
sudo mv /tmp/onlyoffice.gpg /etc/apt/trusted.gpg.d/

命令9:

代码语言:shell
复制
echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list

命令10:

代码语言:shell
复制
sudo apt-get update

命令11:

代码语言:shell
复制
sudo apt-get install onlyoffice-documentserver

一般这一步不会出错,我是软件库版本太新需要根据情况下面2选1进行安装:

代码语言:shell
复制
apt install mysql-client
apt install mariadb-client

第二部分:过程中出现的问题

1.端口的问题

根据官方指导,如果不改端口会造成端口冲突导致无法访问。

因此我把端口号改了,比如9000,这样访问就变成了“域名:端口”,但是不知道是什么原因,改了好几个端口,就是访问不了。现在想起来可能当时配置文件有点问题,用了其他办法解决问题后再回过头来看这个问题就很简单了。

2.https的问题

这一块网上没有教程,全靠自己摸索。

让我回过头去思考问题的出发点是,因为它是基于Nginx的,先研究它的配置文件,研究下来大体和常规网站配置差不多。

Oh no,都什么年代了,ssl默认配置文件中居然还有 {ssl on}的参数,下面倒是有{ssl certificate} 填SSL证书的地方,但是还是不对,没有{server name}栏,不然怎么和证书关联起来呢(因为它默认就是{IP/域名},也就是你的主页{a.com}这个,因为我域名已经配置给博客了,所以要改成其他子域名)

其实这两个问题,我写出来很简单,但是在实际操作过程中,每一步验证都需要花费很多时间,一行行代码逐个对,如果只是根据它的默认配置文件来改,不去追溯基础原理思考分析问题出现在哪,估计真的卡死在这里了。

第三部分:配置细节

程序目录:{/etc/onlyoffice/}

配置文件(软链接):{/etc/nginx/conf.d/ds.conf}

真实路径为:{/etc/onlyoffice/documentserver/nginx/ds.conf}

详细步骤:

1.准备子域名+证书

自签好像也可以,这里不研究了

比如子域名为:{z.a.com}

2.修改配置文件

{/etc/onlyoffice/documentserver/nginx/ds.conf} 只有{http listen 80} 的配置参数

{/etc/onlyoffice/documentserver/nginx/} 下面有个{ds-ssl.conf.tmpl}文件,这个是完整的配置文件

直接把{ds.conf}删除

代码语言:shell
复制
rm /etc/onlyoffice/documentserver/nginx/ds.conf

拷贝ds-ssl.conf.tmpl并重命名为ds.conf

代码语言:shell
复制
cp /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds.conf

修改{ds.conf}配置

代码语言:text
复制
vim /etc/onlyoffice/documentserver/nginx/ds.conf

下面为配置参数:

代码语言:text
复制
include /etc/nginx/includes/http-common.conf;

## Normal HTTP host
server {
        listen 80;
        listen [::]:80;
  server_name z.a.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/ds-common.conf;
#  include /etc/nginx/includes/ds-docservice.conf;
#}

server {
  listen [::]:443 ssl http2;
  server_tokens off;
  root /usr/share/nginx/html;
  server_name z.a.com;   #更改为你的子域名

  ## Strong SSL Security
  ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html

  ssl_certificate /etc/xxxx.pem;   #更改为你的子域名证书路径
  ssl_certificate_key /etc/xxx.key;   #更改为你的子域名证书路径
  # Uncomment string below and specify the path to the file with the password if you use encrypted certificate key
  # ssl_password_file {{SSL_PASSWORD_PATH}};
  ssl_verify_client off;

  ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

  ssl_protocols TLSv1.2;
  ssl_session_cache  builtin:1000  shared:SSL:10m;

  ssl_prefer_server_ciphers   on;

  add_header Strict-Transport-Security max-age=31536000;
  # add_header X-Frame-Options SAMEORIGIN;
  add_header X-Content-Type-Options nosniff;

  ## [Optional] If your certficate has OCSP, enable OCSP stapling to reduce the overhead and latency of running SSL.
  ## Replace with your ssl_trusted_certificate. For more info see:
  ## - https://medium.com/devops-programming/4445f4862461
  ## - https://www.ruby-forum.com/topic/4419319
  ## - https://www.digitalocean.com/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx
  # 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 /etc/ssl/certs/dhparam.pem;

  include /etc/nginx/includes/ds-*.conf;

}

直接保存退出即可。

3.重启Nginx并验证
代码语言:shell
复制
systemctl restart nginx

打开配置的域名,显示以下页面就成功了。

页面里面那个Test Example不要做,做了的话,别人有这个网址也可以进去体验操作文档。

4.配置Nextcloud

打开Nextcloud仪表盘,右上角{头像}-{应用}(如果没有应用的,自己查资料吧,好像可以换成国内应用商店的)-{Office&Text},找到 {OnlyOffice},点击{下载}{启用}

再点击{头像}-{设置},左侧会有 {ONLYOFFICE} 的选项,点进去。

{ONLYOFFICE Docs地址栏} 输入你配置好的域名,比如 {https://z.a.com/},密钥为{空},点击保存后如果成功了,下面会显示常用设置选项。

至此,为NextCloud配置ONLYOFFICE已经是配置完成了。

最后就不吐槽了,毕竟免费的它不香也很正常。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 结论放在开头
  • 环境基础
  • 操作步骤
    • 第一部分:安装OnlyOffice Document Server
      • 第二部分:过程中出现的问题
        • 1.端口的问题
        • 2.https的问题
      • 第三部分:配置细节
        • 1.准备子域名+证书
        • 2.修改配置文件
        • 3.重启Nginx并验证
        • 4.配置Nextcloud
    相关产品与服务
    SSL 证书
    腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档