windows环境下hexo通过hexo-deployer-rsync部署到VPS主机

本博客目前是部署到github上,但是加载速度非常之慢,就需要部署到自己的VPS上,由于有ssh权限,就通过hexo-deployer-rsync插件来同步数据到VPS主机上。由于hexo-deployer-rsync就是调用rsync这个命令使用ssh的方式去同步数据的,所以请先查看 rsync教程 这个教程。

安装插件

Hexo 的 hexo-deployer-rsync 部署方式,实际是执行 Rsync 命令通过 SSH 连接服务器进行文件同步。下面就是 Hexo 根据默认配置实际执行的 Rsync 命令:

1
$ rsync --delete -v -az -e "ssh -p 端口号" /path/to/public/ 用户名@服务器IP:/path/to/root

所以,要使用这用部署方式,你要有一台服务器,本地和服务器都必须安装 Rsync,并且有一个可以通过 SSH 密钥登录服务器的账号。当然,首先需要在 Hexo 初始化的目录下安装 Rsync 插件:

1
$ npm install hexo-deployer-rsync --save

安装Rsync

由于需要在windows机器上面运行rsync,所以就需要安装win版的rsync,即 cwRsync 的客户端可以与 Linux系统上的 Rsync 进行文件传输。cwRsync 官方目前已不再提供免费版,收费版 39 美元一年,不过还是可以找到以前发布的4.1.0 免费版客户端,下载cwRsync客户端安装程序,链接:http://pan.baidu.com/s/1o8UJPJO 密码:oahu

或者通过本站下载,cwRsync下载

安装完 cwRsync 客户端后,需要将安装目录下的 bin 目录的完整路径添加进 Windows 系统环境变量中的 path 变量(再次强调:系统环境变量,不是用户环境变量),这样才能在任意位置使用 rsync 命令。配置好环境变量后然后按 win + r 快捷键调出运行窗口,输入cmd回车打开命令窗口。

在命令窗口输入 rsync 命令就可以看到帮助信息了。值得一提的是,可以在 cwRsync 的 bin 目录中看到 ssh-keygen 等脚本,用它来生成密钥。

  • 执行cwrsync.cmd,检查是否在 cwRsync安装目录下面有没有创建home/%USERNAME%/目录。[注意:必须执行,否则通过ssh-keygen.exe生成秘钥文件时会提示目录创建失败]
  • 运行ssh-keygen.exe -t rsa 一直回车直到完成命令,自在 home/%USERNAME%/.ssh下面生成了id_rsaid_rsa.pub文件。
  • 将id_rsa.pub传到vps主机上,然后 cat id_rsa.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
  • 测试ssh是否配置成功:ssh root@ip,不需要输入密码就表示配置正常了。
  • 上一步成功之后,rsync -v -az -e "ssh -p 22" --chmod=Dugo+r,Dugo+x,Du+w,Fugo+r,Fu+w README.md root@ip:/tmp 看是否成功,注意,—chmod是指会修改权限,目录权限为755,文件权限为644。

配置 Hexo

打开 Hexo 的配置文件 _config.yml,关于部署的配置如下:

1
2
3
4
5
6
7
8
9
10
deploy:
type: rsync
host: <host>
user: <user>
root: <root>
port: [port]
delete: [true|false]
verbose: [true|false]
ignore_errors: [true|false]
args: --chmod=Dugo+r,Dugo+x,Du+w,Fugo+r,Fu+w

参数介绍:

参数 描述 默认值 对应 Rsync 命令选项
host 远程主机的地址 服务器 IP
user SSH 用户名 用户名
root 要同步到服务器的哪个目录下 /path/to/root
port SSH 端口 22 端口号
delete 删除远程主机上的旧文件 true –delete
verbose 显示调试信息 true -v
ignore_errors 忽略错误 false –ignore-errors

注意,跟官方的参数相比,多了args,设置文件权限。

其中 deletverboseignore_errors 这三个参数推荐按照默认值进行配置。

port 是服务器的 SSH 端口,系统默认的 SSH 端口都是 22,而不是文档说的 Rsync 的监听端口(默认 873)。

配置到这里,至少和服务器的通信是没有问题的。也就是说,Hexo 这时候是可以使用 Rsync 命令来启动服务器上的 Rsync命令了。如果你足够”幸运”的话,现在已经可以使用 hexo g 命令来部署你的网站了。同样,你也可以用文章最开始的那个 Rsync 命令同步你的网站到服务器了。

参考资料

使用rsync部署Hexo博客

Hexo 之使用 Rsync 进行部署

通过hexo-deployer-rsync部署Hexo博客到VPS主机

  • 本文作者: wumingx
  • 本文链接: https://www.wumingx.com/tools/hexo-deployer-rsync.html
  • 本文主题: windows环境下hexo通过hexo-deployer-rsync部署到VPS主机
  • 版权声明: 本博客所有文章除特别声明外,转载请注明出处!如有侵权,请联系我删除。
0%