原文链接:https://www.moerats.com/archives/429/ ,有更改
说明:关于 NextCloud
安装方法之前说了两种了,常规的 lnmp
环境搭建和使用 Docker
安装,参考:一款不错的个人私有云:NextCloud 安装教程,使用 Docker 快速安装 NextCloud 个人私有云盘,现在再说另一种安装方法,使用 Snap
快速安装,由于 Snap
包自带 NextCloud
,所以安装快速简单,是这几种方法中最简单的一个,也很实用,有兴趣的可以尝试下。
# Snap 是什么?
Snap
的安装包扩展名是 .snap
,类似于一个容器,完全独立于系统,它包含一个应用程序需要用到的所有文件和库( snap
包包含一个私有的 root
文件系统,里面包含了依赖的软件包)。它们会被安装到单独的目录,各个应用程序之间相互隔离,互不影响。而且安装快捷、创建简单、运行安全,易管理。目前支持的主流发行版有 Ubuntu
、 Debian
等。
Snap 的用法
这里只简单说下,初步了解下就行了。#查看 snap 版本信息
snap --version
#找出所有 snap 应用
snap find
#安装应用
snap install 包名
#重启应用
snap restart 应用名
#升级应用
snap refresh 应用名
#查看安装的应用
snap list
#卸载应用
snap remove 应用名
# 安装
由于 Ubuntu 16.04
系统自带 Snap
,为了方便,可以直接使用该系统。
Snap
包自带 NextCloud
,所以我们可以直接安装。#更新系统
apt-get update -y
#安装 NextCloud
snap install nextcloud
这时候就可以打开 http://your_ip
进入登录页面了,如果想用域名登录并配置 SSL
证书的话,先别登录,请直接看后面。
# 配置域名
将域名解析至 VPS
的 IP
就可以使用域名登录了,然后再添加 Let’s encrypt SSL
证书并使用 https
访问。
添加 SSL 证书
使用命令:nextcloud.enable-https lets-encrypt
根据要求输入你的邮箱,域名即可!
然后就可以打开域名并设置账号和密码登录了。
更多使用命令和方法可以直接查看 Github
地址→传送门,基本上可以解决你的大部分疑惑。
# Nginx 反向代理
通过反向代理时,不需使用 nextcloud.enable-https lets-encrypt
申请域名,不过会稍微麻烦一点。
第一步,更改 nextcloud 的默认端口sudo snap set nextcloud ports.http=185
sudo snap set nextcloud ports.https=186 #这一步可选,因为我们不会使用 nextcloud 的 https 端口
第二步,添加 nextcloud 的 trusted_domainssudo snap run nextcloud.occ config:system:set trusted_domains 1 --value=your.fancy.domain
接着重启 nextcloudsudo snap restart nextcloud
然后在 Nginx 配置文件中设置反向代理,添加如下内容 (这是已有证书时的内容)server {
listen 443 ssl;
server_name your.fancy.domain;
# 获取到的两个证书文件
ssl_certificate /etc/nginx/certs/h1msk.cc/cert.pem;
ssl_certificate_key /etc/nginx/certs/h1msk.cc/privkey.pem;
# ssl设置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:10080;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
}