Table of Contents
迫于存储和协同编辑文档的需求,我尝试过 ownCloud/kodexplorer,然而都不尽人意。偶然发现 Nextcloud ,这是由 ownCloud 原骨干开发的网盘程序,功能比较强大,扩展性很强。比如 Nextcloud 可以和 OnlyOffice 配合实现云协同工作,这在 (group)essay 漫天飞的大学生活中是特别实用的。
查询了许多资料发现大多方案配置较为繁琐,为此摸索出了较为轻松的部署方案:
- 使用 LNMP 一健包配置 Nextcloud 环境。 Nextcloud 的配置较为简洁,甚至只需要给予文件夹权限,然后通过官方提供的php文件进行安装。官方提供的 docker 运行环境虽然省去了一定的配置步骤,但是需要其他 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 只支持PHP7.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 /? (你设定的虚拟主机目录)wget https://download.nextcloud.com/server/installer/setup-nextcloud.php然后通过绑定的域名访问setup-nextcloud.php进行手动安装。
安装完毕后修改 Nginx 伪静态规则。
cd /usr/local/nginx/conf/vhostvi 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)
首先安装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即可,现在你应该可以通过访问 IP:4443 的方式看到 OnlyOffice Document Server 的默认页面了。 接下来我们需要添加onlyoffice用的域名,并解析到服务器IP上,添加主机。同样记得选择启用 SSL。 然后编辑 Nginx 的配置文件
cd /usr/local/nginx/conf/vhostvi yourdomain.tld.conf // 注释80端口 #listen 80server { 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