博主写在前面的话 (也算是建议):
搭建onlyoffice的服务器,先用一个域名解析过来,然后在用这个域名去申请一个CA证书,这在后面会用到,会替你省去很多不必要的麻烦!
推荐服务器配置
RAM: 4 GB+
CPU: 双核 2 GHz +
Swap: 至少2 GB
HDD: 至少有2GB的剩余空间
系统要求: RedHat 64bit,CentOS类、Debian类的内核版本3.8以上。
Docker: 1.9.0版本及以上
查看内核版本:
uname -r
安装Docker
CentOS/RedHat/Fedora
使用yum命令安装Docker:
yum install docker -y
启动Docker服务:
systemctl start docker
Debian/Ubuntu
使用apt命令安装Docker:
sudo apt-get install docker.io
Docker服务会自动启动。
拉取ONLYOFFICE Document Server 的Docker镜像
拉取镜像:
sudo docker pull onlyoffice/documentserver

国内主机从Docker Hub拉取镜像的话可能会比较慢,可以尝试类似阿里云、Daocloud的加速器。
拉取完成:

启动Docker容器
启动Document Server镜像,并映射80端口至本地。
sudo docker run -i -t -d -p 80:80 onlyoffice/documentserver

启动后,访问http://服务器地址:80,就可以看到如下的页面:

注意:刚开始看到的可能是是502 Bad Gateway,稍等一会,刷新浏览器页面即可。
将Document Server映射至其它端口
80端口上往往会运行像Apache、Nginx之类的HTTP服务,为了避免端口冲突,我们可以将Document Server映射至其它端口。
例如映射至9000端口:
sudo docker run -i -t -d -p 9000:80 onlyoffice/documentserver


注意:如果有域名证书可跳至最后!
一些说明……
Document Server的数据在容器中的储存位置如下:
/var/log/onlyoffice 存放ONLYOFFICE Document Server日志
/var/www/onlyoffice/Data 存放证书文件
你可以用
sudo docker -exec -it onlyoffice/documentserver /bin/bash
登入容器,也可以将以上两个目录映射到本地,这样更方便。
创建目录:
mkdir -p /app/onlyoffice/DocumentServer/logs
mkdir -p /app/onlyoffice/DocumentServer/data
使用
docker -v
将目录映射至本地:(注意:下面代码一条一条执行,一下执行一条,然后弹出响应以后在执行另外一条)
sudo docker run -i -t -d -p 80:80 \ -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \ -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
这样,直接访问本地的
/app/onlyoffice/DocumentServer/
下的两个文件夹就可以了。
启用HTTPS
HTTPS需要使用SSL证书,可以自己签发也可以用ca机构签发的,加密效果相同。
生成证书:
创建私钥
openssl genrsa -out onlyoffice.key 2048
创建CSR
openssl req -new -key onlyoffice.key -out onlyoffice.csr
用私枂和CSR签发证书
openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
用dhparam加密服务器密钥
openssl dhparam -out dhparam.pem 2048
完成证书的生成后,将生成的证书拷贝到
/app/onlyoffice/DocumentServer/data/certs
目录下。
创建相应目录:
mkdir -p /app/onlyoffice/DocumentServer/data/certs
复制证书到
/app/onlyoffice/DocumentServer/data/certs
目录并设置权限:
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
运行容器,映射容器的443端口和Data目录至本地:
sudo docker run -i -t -d -p 443:443 \ -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
在浏览器里访问https://服务器地址/。(CentOS/RHEL/Fedora系统可能无法访问,请往下看)
当然了,如果本地443端口已经被占用了的话,可以映射至其它端口:
sudo docker run -i -t -d -p 9000:443 \ -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
但是仍然是要用HTTPS协议访问,比如:https://服务器地址:9000/
我就是最后:
创建证书存放目录(在当前Linux下面):
mkdir -p /app/onlyoffice/DocumentServer/logs
mkdir -p /app/onlyoffice/DocumentServer/data
mkdir -p /app/onlyoffice/DocumentServer/data/certs
然后把你自己的证书按照下面的命名放到上面目录下:
onlyoffice.key
onlyoffice.crt
启动容器:(注意:下面代码一条一条执行,一下执行一条,然后弹出响应以后在执行另外一条)
下面代码中443为Docker容器的证书端口,9000是你要映射访问的端口
sudo docker run -i -t -d -p 9000:443 \-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
CentOS/RHEL/Fedora无法访问
这是由于SELinux的阻止。
暂时关闭SELinux(重启后失效):
setenforce 0
问题解决:
1、如果你是自签证书或者证书和绑定域名不匹配,NextCloud会阻断连接
在:/nextcloud/config/config.php
增加一段这个配置就OK了
'onlyoffice' =>
array (
'verify_peer_off' => TRUE,
)
原文链接:https://www.orgleaf.com/2588.html
文章评论
'onlyoffice' =>
array (
verify_peer_off' => TRUE,
)
少个‘
@A @A:恩恩,可能当时遗忘了,已经修改