VPS 使用 Caddy 快速搭建 Nextcloud 全过程
今天准备做一个完整的采用 Caddy Web Server 部署 NextCloud 的教程。本教程除 Web 服务器配置,部分参考橙叶博客文章——VPS 快速完美部署 ownCloud/Nextcloud 全过程。有什么问题,欢迎在评论区留言或者联系我,我一定会及时回复的。
VPS 及系统环境
- VPS:国内腾讯云的香港云主机
- 系统:Ubuntu 16.04
我采用的 VPS 是国内腾讯云的香港云主机,全世界范围内 ping 值都很低,按流量计费最大能开到 200M 带宽。毕竟是腾讯的,国内访问速度出奇的快。
系统采用的是 Ubuntu 16.04,Debian 系的应该都能够一样实现吧。
DNS 解析
Caddy Web Server 会自动申请 ssl 证书,全站 https,但是需要提前将域名解析到所在 VPS,否则 Caddy 会启动失败。不需要 ssl 的或想要 IP 访问的请自行调整 Caddy 配置。
环境配置
ssh 登录 VPS 后,在 root 用户下继续执行下面的操作。
更新软件源
1 | apt update |
安装 Caddy
为节省时间,此处采用了 Toyo 大佬的一键脚本。详细页面参见:『原创』Go 语言 跨平台支持的极简 HTTP Server —— Caddy 一键安装脚本。
1 | wget -N --no-check-certificate https://softs.loan/Bash/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.cgi,http.expires,http.filemanager,http.git,http.filter |
使用说明
启动:/etc/init.d/caddy start
停止:/etc/init.d/caddy stop
重启:/etc/init.d/caddy restart
查看状态:/etc/init.d/caddy status
查看 Caddy 启动日志: tail -f /tmp/caddy.log
安装目录:/usr/local/caddy
Caddy 配置文件位置:/usr/local/caddy/Caddyfile
Caddy 自动申请 SSL 证书位置:/.caddy/acme/acme-v02.api.letsencrypt.org/sites/xxx.xxx(域名)/
安装并配置 MySQL
安装
1 | apt install mysql-server |
将会有图形界面用以设定 root 密码,根据提示进行操作即可。
配置
这里采用 SQL 命令配置数据库
-
登录数据库
1
mysql -u root -p
-
创建名为 nextcloud 的数据库
1
CREATE DATABASE nextcloud;
-
切换数据库
1
USE nextcloud;
-
创建名为 nextcloud 的用户,密码为 password (注意替换为自己的),并赋予权限。
1
GRANT All ON nextcloud.* TO nextcloud@localhost IDENTIFIED BY 'password';
-
登出数据库
1
exit
安装 php7.0
1 | apt install php7.0 php7.0-mbstring php7.0-zip php7.0-dom php7.0-xml php7.0-gd php7.0-curl php7.0-mysql -y |
打开 /etc/php/7.0/fpm/pool.d/www.conf
查看 php7.0-fpm
监听的地址,留作后用。不同系统可能位置不同,也可能配置在 /etc/php7.0/fpm/php-fpm.conf
中。
监听地址可能为以下两种:
- 语句为
listen = /run/php/php7.0-fpm.sock
,此时监听地址为/run/php/php7.0-fpm.sock
- 语句为
listen = 127.0.0.1:9000
,此时php7.0-fpm
绑定了 9000 端口,监听地址为127.0.0.1:9000
监听地址可以自行修改。修改后运行以下内容应用。
1 | service php7.0-fpm reload |
创建文件及网站目录
1 | cd / |
安装 NextCloud
下载
1 | cd /home/wwwroot/example.com |
设置文件夹权限
新建 set.sh
文件,添加如下内容:
1 | !/bin/bash |
打开文件,将 “#1” 所在行的地址更改为你自己的网站文件地址,然后保存。
赋予权限并运行。
1 | chmod +x set.sh |
挂载腾讯 COS 作为存储盘(选)
这一步为选做,小硬盘 VPS 福音。
由于我用的是腾讯云主机,同地域 COS 内网流量免费,将文件存储到 COS 能极大地节省 VPS 的硬盘空间。在此处我默认你已经创建了腾讯云对象存储的 Bucket,不会的请谷歌解决。
安装 COSFS 工具
环境安装
1 | apt install automake autotools-dev g++ git libcurl4-gnutls-dev libfuse-dev libssl-dev libxml2-dev make pkg-config fuse -y |
下载源码
使用 Github 原始地址:
1 | git clone https://github.com/tencentyun/cosfs /usr/cosfs |
如果国内主机速度过慢,可以使用我在 gitee 备份的库:
1 | git clone https://gitee.com/sunziyang97/cosfs.git /usr/cosfs |
编译安装
1 | cd /usr/cosfs |
配置文件
在 /etc/passwd-cosfs
文件中,配置您的存储桶的名称,以及该存储桶对应的 SecretId 和 SecretKey,相关概念参见 对象存储基本概念。使用冒号隔开,注意冒号为半角符号。 并为 /etc/passwd-cosfs
设置可读权限。命令格式如下:
1 | echo <bucketname>:<SecretId>:<SecretKey> > /etc/passwd-cosfs |
其中:
bucketname
/ SecretId
/SecretKey
需要替换为用户的真实信息。
bucketname
形如 bucketprefix-123456789
, 更多关于 bucketname
的命名规范,参见存储桶命名规范。
挂载
运行工具
将配置好的存储桶挂载到指定目录,命令行如下:
1 | cosfs nextcloud-123456789 /home/wwwdata -ourl=http://cos.ap-hongkong.myqcloud.com -ouid=33 -ogid=33 -o allow_other -o umask=007 |
注意替换为自己的信息
配置开机自动挂载
1 | echo cosfs#nextcloud-1253146816 /home/wwwdata fuse _netdev,url=http://cos.ap-hongkong.myqcloud.com,uid=33,gid=33,allow_other,umask=007 0 0 >> /etc/fstab |
注意替换为自己的信息
编辑 Caddy 配置文件
打开配置文件
1 | vi /usr/local/caddy/Caddyfile |
添加如下内容
1 | pan.iszy.me { |
在 #1
处将地址替换为之前查看的 php7.0-fpm
监听的地址。
重启 Caddy。
1 | service caddy restart |
安装
访问 example.com (你自己的网站),输入信息并安装。
注意点:
- 数据目录填写绝对地址,本例中应使用
/home/wwwdata
。 - 数据库用户名为之前创建的
nextcloud
,密码为你设定的密码 - 数据库地址要加端口,如
localhost:3306
配图为我前一次使用宝塔面板进行安装时的截图。
更多问题
安装完成后登录,进入设置
—管理
—基本设置
,还有一些问题需要解决。我们下篇文章继续说明。
有什么问题,欢迎在评论区留言或者联系我,我一定会及时回复的。