前言
迫于存储和协同编辑文档的需求,我尝试过 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
感谢 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