hexo配置:ftpsync及git

概述:本文主要讲述hexo搭建完成后,使用GithubPage和阿里云虚拟主机部署网站过程中碰到的问题。耗时1整天调试ftpsync及git方式,完成roloop搭建。

简介

之所以选择hexo进行建站,供参考,大致原因如下:

  1. 撰写一些公开文章,不涉及隐私相关内容;
  2. 使用markdown进行编写,注重文章内容;
  3. 利用自己域名,不想依托其他内容平台。

基础教程可以google其他文章,教程大多已经比较详尽,此文章主要概要说一下踩到的几个坑。如有时间也会将基础教程也补充,先留坑。

环境

环境基础搭建,google比较多。

  • MAC电脑,可能与WIN电脑设置有所不同
  • Github账号一枚
  • Homebrew套件管理器(非必须)
  • Node.js环境
  • Git环境
  • Hexo安装完成

框架

暂时未选择图床,不好贴图,先文字描述一下我选择的“双活”方案。

  1. 本地生成静态资源(在public文件夹下)
  2. 通过git推送到GithubPage(repo名应为username.github.io)
  3. 通过ftpsync推送到阿里云虚拟主机ftp(1年6元)
  4. 通过username.github.io访问Github
  5. 通过自己购买的域名访问ftp对应的虚拟主机地址

主题

选择了NexT主题,暂未完成配置,留坑。

第一活:GithubPage

用自己github的账号替代下文中的username

  • Github账号一枚,并创建一个username.github.io的repo(参考官方文档,严格执行)
  • 本地安装Git,配置SSH key

使用git进行推送,网址为username.github.io。

建站方便,但由于国内访问速度慢,所以使用github进行版本管理。

_config.yml配置

1
2
3
type: git
repo: git@github.com:username/username.github.io.git
branch: master

第二活:阿里云虚拟主机

开启ftpsync的verbose模式看到,原来这货是先取出远端的目录文件,再与本地的目录文件对比,然后将差异计算出来,最后执行相关的同步。

注意项

ftpsync是把ftp的服务端目录和文件调整成本地一模一样,也就是原来服务器上的文件如果本地没有话是会被删除掉的。(这里体现了双活的必要)

注意ignore相关语法,阿里云主机中logreport无权限删除

使用ftp进行管理

1
2
3
4
5
6
7
8
9
type: ftpsync
host: <host> # 主机地址
user: <user> # 用户名
pass: <password> # 密码
remote: /htdocs # 远端目录,按需填写
port: 21 # 默认为21
connections: 1
verbose: true
ignore: ['.DS_Store','/logreport','/zhuye.html','/report','/.svn'] # 需忽视的目录

部署到双活

注意项

多个type前方需加-,否则会报错。

1
2
3
4
5
6
7
8
9
10
11
12
- type: git
repo: git@github.com:username/username.github.io.git
branch: master
- type: ftpsync
host: <host> # 主机地址
user: <user> # 用户名
pass: <password> # 密码
remote: /htdocs # 远端目录,按需填写
port: 21 # 默认为21
connections: 1
verbose: true
ignore: ['.DS_Store','/logreport','/zhuye.html','/report','/.svn'] # 需忽视的目录

部署语句如下,看到多个deploy done了之后,就ok了。

1
2
3
hexo clean
hexo g
hexo d

Hexo常用命令

1
2
3
4
5
6
7
hexo init       //在指定目录执行该命令,会将当前目录初始化为hexo站点,生成hexo站点所需的一切文件
hexo new “my new blog title” //新建一篇文章。如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数代替。如果标题包含空格的话,请使用引号括起来。
hexo clean // 清除缓存,如果对本地文件做了修改,同步到远程验证修改的效果之前,先clean,清除缓存
hexo generate // 可以简写成hexo g 根据markdown文件生成静态文件
hexo server // 或者简写成hexo s 启动本地hexo 服务器,默认localhost:4000可以访问
hexo deploy // 或者简写成hexo d 将本地修改,部署到远端
hexo version // 显示hexo版本

附录

  • 出错先排除各种原因,找到原因关键(例如先使用原始主题、手工ftp上传public)
  • 查看系统各类报错
  • 出问题先hexo s,查看本地是否正常