前言

迫于存储和协同编辑文档的需求,我尝试过 ownCloud/kodexplorer,然而都不尽人意。偶然发现 Nextcloud ,这是由 ownCloud 原骨干开发的网盘程序,功能比较强大,扩展性很强。比如 Nextcloud 可以和 OnlyOffice 配合实现云协同工作,这在 (group)essay 漫天飞的大学生活中是特别实用的。

查询了许多资料发现大多方案配置较为繁琐,为此摸索出了较为轻松的部署方案:

  1. 使用 LNMP 一健包配置 Nextcloud 环境。

Nextcloud 的配置较为简洁,甚至只需要给予文件夹权限,然后通过官方提供的php文件进行安装。官方提供的 docker 运行环境虽然省去了一定的配置步骤,但是需要其他 docker 如 mysql 配合(否则只能使用sqlite数据库),所以步骤和直接安装并没有太大区别。而 LNMP 一键包易于使用,十分省心。

  1. 利用官方提供的 OnlyOffice Docker 镜像部署 OnlyOffice。

OnlyOffice 的配置比较繁琐,于是直接使用 docker 镜像,反正只是提供一个 document server。

  1. 各种详细配置

伪静态以及性能优化。

本文测试环境为CentOS 7 最新稳定版本。

正文

1.安装 LNMP

感谢 https://lnmp.org
yum -y install wget vim screen
screen -S lnmp
wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp

这里需要注意的是 Nextcloud 只支持PHP7.1.X以上版本(7.1.31测试通过),安装时请留心。

安装完毕后,顺手安装 Redis, Opcache 以及 APCu(为NextCloud提供性能优化)

bash addons.sh

选择 Redis, Opcache 以及 APCu 即可。

然后进行添加主机等操作,可以到上方提供的官网查询详细命令。

添加主机时记得选择使用SSL,没有证书可以先把域名解析到服务器IP上,然后选择使用 Let’s Encrypt 提供的免费证书,LNMP 脚本会自动更新域名证书。

2.安装并配置Nextcloud

感谢 https://nextcloud.com

最为简洁的方式为下载PHP文件,然后填写配置文件后进行自动安装。

cd /? (你设定的虚拟主机目录)
wget https://download.nextcloud.com/server/installer/setup-nextcloud.php

然后通过绑定的域名访问setup-nextcloud.php进行手动安装。

安装完毕后修改 Nginx 伪静态规则。

cd /usr/local/nginx/conf/vhost
vi yourdomain.tld.conf
   // 在listen 80 和 listen 443中
   // 注释掉include enable-php.conf(共两处),并在下方添加如下内容
             #include enable-php.conf;
             include enable-php-pathinfo.conf;
              location /{
               if (!-e $request_filename) {
               rewrite ^/(.*)$ /index.php/$1 last;
               }
           }

进入 Nextcloud,测试基本功能。完成后在右上方点击 Apps 标签,然后搜索框中输入 onlyoffice 进行搜索, 安装连接插件。(暂时不用配置)

下一步修改配置文件以开启APCu以及Redis,加速 Nextcloud 页面加载。
配置文件位于config/config.php
使用编辑器在其中加入

'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
 'host' => 'localhost',
 'port' => 6379,
  ),

保存后测试功能,功能正常进入下一环节。

3.安装 OnlyOffice Document Server (docker)

感谢 https://www.onlyoffice.com

首先安装docker, 设置为系统默认启动项并启动

yum -y install docker
systemctl enable docker
systemctl start docker

接下来拉取官方镜像

docker pull onlyoffice/documentserver

完毕后启动(强烈建议启用HTTPS)

docker run -i -t -d -p 4443:443 \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  onlyoffice/documentserver

然后检查启动状态

docker ps

看到其中有容器 ID 以及 onlyoffice/documentserver即可,现在你应该可以通过访问 IP:4443 的方式看到 OnlyOffice Document Server 的默认页面了。
接下来我们需要添加onlyoffice用的域名,并解析到服务器IP上,添加主机。同样记得选择启用 SSL。
然后编辑 Nginx 的配置文件

cd /usr/local/nginx/conf/vhost
vi yourdomain.tld.conf
    // 注释80端口 
       #listen 80      
             server
               {
                listen 443 ssl http2;
                #listen [::]:443 ssl http2;
     // 添加
             location /{
            proxy_pass https://localhost:4443;
    }

Ctrl + C & :wq! 退出。

这开启了端口转发,将4443端口转发到443端口上,以支持域名直接访问 OnlyOffice Document Server。
现在你可以通过 [https://yourdomain.tld] 的方式访问 OnlyOffice Document Server。
返回Nextcloud,在设置中选择NEXTCLOUD,然后第一行空格填入 [https://yourdomain.tld] 。成功后即可选择默认使用OnlyOffice 编辑的文件格式。
Enjoy

Last modification:September 25, 2020
If you think my article is useful to you, please feel free to appreciate