Table of Contents
前言
迫于存储和协同编辑文档的需求,我尝试过 ownCloud 和 kodexplorer,然而都不尽人意。偶然发现 Nextcloud,这是由 ownCloud 原骨干开发的网盘程序,功能比较强大,扩展性也很强。比如 Nextcloud 可以和 OnlyOffice 配合实现云协同工作,这在 group essay 漫天飞的大学生活中是特别实用的。
查询了许多资料,发现大多方案配置较为繁琐,为此摸索出了较为轻松的部署方案:
- 使用 LNMP 一键包配置 Nextcloud 环境。 Nextcloud 的配置较为简洁,甚至只需要给予文件夹权限,然后通过官方提供的 PHP 文件进行安装。官方提供的 Docker 运行环境虽然省去了一定的配置步骤,但是需要 MySQL 等其他容器配合(否则只能使用 SQLite 数据库),所以步骤和直接安装并没有太大区别。而 LNMP 一键包易于使用,十分省心。
- 利用官方提供的 OnlyOffice Docker 镜像部署 OnlyOffice。 OnlyOffice 的配置比较繁琐,于是直接使用 Docker 镜像,反正只是提供一个 document server。
- 各种详细配置。 伪静态以及性能优化。
本文测试环境为 CentOS 7 最新稳定版本。
1. 安装 LNMP
yum -y install wget vim screenscreen -S lnmpwget 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 只支持 PHP 7.1.x 以上版本(7.1.31 测试通过),安装时请留心。
安装完毕后,顺手安装 Redis、OPcache 以及 APCu(为 Nextcloud 提供性能优化):
bash addons.sh选择 Redis、OPcache 以及 APCu 即可。
然后进行添加主机等操作,可以到上方提供的官网查询详细命令。
添加主机时记得选择使用 SSL。没有证书可以先把域名解析到服务器 IP 上,然后选择使用 Let’s Encrypt 提供的免费证书,LNMP 脚本会自动更新域名证书。
2. 安装并配置 Nextcloud
最为简洁的方式是下载官方提供的 PHP 文件,然后通过网页进行安装。
cd /path/to/your/vhost/directorywget https://download.nextcloud.com/server/installer/setup-nextcloud.php然后通过绑定的域名访问 setup-nextcloud.php 进行手动安装。
安装完毕后修改 Nginx 伪静态规则。
vim /usr/local/nginx/conf/vhost/yourdomain.tld.conf在 listen 80 和 listen 443 对应的 server 块中,注释掉 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)
首先安装 Docker,设置为系统默认启动项并启动:
yum -y install dockersystemctl enable dockersystemctl 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 即可。现在你应该可以通过 https://IP:4443 访问 OnlyOffice Document Server 的默认页面了。
接下来需要添加 OnlyOffice 使用的域名,并解析到服务器 IP 上,然后添加主机。同样记得选择启用 SSL。
编辑 Nginx 配置文件:
vim /usr/local/nginx/conf/vhost/yourdomain.tld.conf注释掉 80 端口监听,并在 443 的 server 段中添加反向代理:
server { listen 443 ssl http2; #listen [::]:443 ssl http2;
location / { proxy_pass https://localhost:4443; }}这开启了端口转发,将 4443 端口转发到 443 端口上,以支持域名直接访问 OnlyOffice Document Server。
现在你可以通过 https://yourdomain.tld 访问 OnlyOffice Document Server。返回 Nextcloud,在设置中选择 ONLYOFFICE,然后在第一行填入 https://yourdomain.tld。成功后即可选择默认使用 OnlyOffice 编辑的文件格式。
Enjoy