使用的服务器是aliyun的ECS 系统为 ubuntu 18.04 只要是因为要到某一个版本才能用snap 。
总流程步骤
- 安装snap
- 安装nextcloud
- 安装nginx
- 安装ossfs
- 挂载oss
安装snap
简介
snap
以我今天用了一天的理解,可以理解为将一个应用需要各种软件进行打包安装,类似php开发中的lamp 这种一件安装包。同时它各个应用之间相互隔离。
- 查看snap版本信息
snap --version
- 找出所有snap应用
snap find
- 安装应用
snap install 包名
- 重启应用
snap restart 应用
- 查看已安装应用
snap list
- 卸载应用
snap remove 应用
安装snap
ubuntu其实自带的有snap
sudo apt-get update
sudo apt-get install snap
sudo apt-get install snapd
安装NextCloud
snap install nextcloud
浏览器访问本机,就可以开始初始化操作了
就一步安装完成,之后会自动启动,使用的默认端口是80,如果80端口被占用,是启动失败
修改端口
设置http服务器端口81,https端口443 其实这是apache用的端口
snap set nextcloud ports.http=81 ports.https=443
配置文件地址
目录 /var/snap/nextcloud/current
该目录下为其用到的各个服务的配置文件。
目录 /var/snap/nextcloud/common/nextcloud/data
目录下存储这云盘的文件
启用https
这一步我没用成功,一直失败,https 我使用后面的nginx是实现
nextcloud.enable-https lets-encrypt
安装nginx
其实用ubuntu一直有nginx 客户看我另一篇文章 《》
《Nginx HTTPS 配置》
配置https
通过nginx反向代理,将https请求,转为http 到 nextcloud。
二级域名转发
server {
#监听端口
listen 443 ssl;
#配置服务的名字
server_name [你的二级域名];
# 公钥
ssl_certificate [证书公钥地址];
# 私钥
ssl_certificate_key [证书私钥];
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
# 将所有请求转发到 127.0.0.1:8080的服务上
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:81;
}
}
拦截http请求,转为https请求
server {
listen 80;
server_name [你需要拦截的域名];
if ($scheme = http ) {
return 307 https://$host$request_uri;
}
}
添加可信域名到nextcloud
否则在对客户端授权等会有意外
进入 nextcloud
的配置文件
cd /var/snap/nextcloud/current/nextcloud/config
vim config.php
在trusted_domains
下安装对应格式增加使用的二级域名
'trusted_domains' =>
array (
0 => '[我是域名1]',
1 => '[我是域名2]',
),
挂载OSS
由于云服务器的硬盘真的贵,我选择更便宜的oss。
注意 阿里云现在有三种oss,标准存储
、低频访问
、归档 存储。如果想对文件可以实时操作只能选前两种,我就是因为看归档存储是最便宜的,遇到了很多的麻烦。
安装阿里云的操作设置好bucket和访问Access Key
安装ossfs 将bucket挂载到云服务器上
官方文档,安装官方文档进行操作
注意需要加上 -o allow_other
参数否则无法操作。
我试讲oss 当做云盘中的一个文件夹处理的,有人会把整个/var/snap/nextcloud/common/nextcloud/data
都放在oss上,个人感觉动作点大。
-
安装ossfs 文档
-
挂载oss
-
实例
- 跟进官方文档设置好
/etc/passwd-ossfs
- 新建挂载点
- 跟进官方文档设置好
cd /var/snap/nextcloud/common/nextcloud/data
cd 用户名
mkdir aliyun_oss
- 挂载上文件
ossfs [bucket 名字] /var/snap/nextcloud/common/nextcloud/data/superdafu/files/next-dafu_low_oss/ -ourl=oss-cn-hangzhou-internal.aliyuncs.com -o allow_other
注意-ourl 用内网的 ,流量很贵的。
这个时候你已经可以操作oss上的文件了。
OCC工具的使用
这个时候你会遇到一个问题,你在挂载点钟新建的文件,在nextcloud里面看不见,那是因为你的文件没有被nextcloud记录到对应的数据库中,所以看不见。
由于我们使用的是 snap,snap相对于系统是独立的,所以没法用直接用occ命令,需要制定好snap的包后,进行操作.
nextcloud.occ
可以看见该工具的详细说明。
扫描目录
nextcloud.occ files:scan --all
就可以看见目录。
nextcloud的配置操作参考https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-nextcloud-on-ubuntu-18-04