博客架构
整个流程就是本地将 *.md 渲染成静态文件,然后Git推送到服务器的repository,服务器再通过 git-hooks
同步网站根目录。
部署本地环境
本地环境是window,所以直接官网下载安装即可。
Node.js download
Git download
如果第一次使用git,可以按照这个流程
~/.ssh/id_rsa.pub
文件后面会用到
安装Hexo
Hexo官方文档
打开Git Bash
中输入
# npm是随同NodeJS一起安装的包管理工具,可以通过它从npm服务器直接安装各种包
npm install -g hexo-cli # 安装Hexo
# 初始化Hexo(之后的本地上的操作都要到该目录下进行,所以慎重选择下)
cd /h/blog
hexo init # Hexo会在当前目录初始化
# 安装必要Hexo插件
# 之后的操作都在初始化的目录下进行执行
npm install hexo-deployer-git --save
npm install hero-server
# 设置ghexo-deployer-git参数
vi _config.yml
# 最后增加这段
deploy:
type: git
repo: git@1.1.1.1:/var/git/blog.git
branch: master
message: '站点更新:{{now("YYYY-MM-DD HH/mm/ss")}}'
hexo-deployer-git
可以自动化的将本地的代码push到自己的VPS上,结合git-hooks
钩子,就是在本地一打命令,VPS上的站点就更新了,贼方便
hero-server
就是一个服务器一样,执行 hexo s
,在访问给出的url,就可以看见自己博客的样子。
修改主题
服务器建设
CentOS 6
环境部署
yum install git # 安装git
curl -sL https://rpm.nodesource.com/setup | bash - # 安装node.js
yum install -y gcc-c++ make # 安装node.js
git设置
# 创建git用户
adduser git
passwd git # 设置密码
# 设置公钥
cd /home/git/
mkdir .ssh
vi .ssh/authorized_keys # 复制自己GIT公钥进入,一行一个
# 初始化git仓库
cd /var
mkdir git
cd git
git init --bare blog.git # 创建一个裸库
# 设置git-hook
vi blog.git/hooks/post-receive
#!/bin/sh
git --work-tree=/var/blog --git-dir=/var/git/blog.git checkout -f
chmod +x blog.git/hooks/post-receive
chown -R git:git /var/git
站点设置
mkdir /var/blog
chmod 777 /var/blog
安装nginx
# 引用别人的过程
# 安装 nginx
第一步,在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo:
cd /etc/yum.repos.d/
vim nginx.repo
填写如下内容:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
保存,则会产生一个/etc/yum.repos.d/nginx.repo文件。
下面直接执行如下指令即可自动安装好Nginx:
yum install nginx -y
# 配置 nginx
# /etc/nginx/nginx.conf文件中http节点下,增加以下代码
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/blog;
index index.html
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# 重启
service nginx restart
问题解决
[DEP0061] DeprecationWarning: fs.SyncWriteStream is deprecated.
hexo 命令都会触发这个error
解决思路
遇见这个问题是因为hexo-admin中的lib库hexo-fs没更新及时。
注释掉里面的被弃用的代码即可。
修改文章生成的标题格式
修改blog\themes\archer\layout_partial\base-head.ejs文件 title标签下的代码。