使用Github的原因是因为双重部署,这样稳一些,好了,废话不多说,看教程!
搭建环境:CentOS 7.7+Nginx 1.18.0+Node.js 12.4.0+Github
1.安装Git
因为Centos7.7的yum仓库里面Git版本比较旧所以我们采用源码安装新版Git
1.1安装编译源码依赖包
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install -y gcc perl-ExtUtils-MakeMaker
1.2卸载老版本Git
yum remove -y git
1.3下载新版Git
https://mirrors.edge.kernel.org/pub/software/scm/git/
这是Git下载目录自行找最新版
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.xz
xz -d git-2.9.5.tar.xz //将xz解压然后得到tar格式压缩文件
tar xvf git-2.9.5.tar //解压tar文件
1.4编译安装Git
cd git-2.9.5 //进入文件夹
make prefix=/usr/local/git all //编译至该目录下
make prefix=/usr/local/git install //安装到该目录
注意:先编译在安装,编译速度取决于机器性能,等待一下就好了
编译好后配置环境变量
vim /etc/profile
在文件最下面写入变量
export PATH=$PATH:/usr/local/git/bin //这个目录是刚刚编译安装Git的目录
配置好变量后刷新一下
source /etc/profile
最后用git –version查看版本,可以看到Git的版本号为2.9.5表示已经安装成功了
2.配置Git用户
adduser git //创建用户
passwd git //设置用户密码
chmod 740 /etc/sudoers //赋予这个文件权限
vim /etc/sudoers //编辑这个文件
在配置中找到这条记录
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
#在这条记录的下面添加一个Git配置
git ALL=(ALL) ALL
然后把权限改回来chmod 400 /etc/sudoers
3.安装及配置Nginx
因为我的Yum仓库里有Nginx的包所以就直接Yum安装了,如果你的没有就自行百度Nginx的安装
3.1安装Nginx
yum install -y nginx //安装Nginx
systemctl start nginx //启动Nginx
systemctl enable nginx //开机启动Nginx
3.2配置Nginx
针对不同版本不同方式安装的Nginx配置文件位置可能不一样,我们可以用nginx -t查看配置文件位置,也可以用检查语法错误,我的配置文件在/etc/nginx/nginx.conf下
vim /etc/nginx/nginx.conf命令进行编辑
server{
listen 80 default_server;
listen [::]:80 default_server;
server_name www.xxx.com; #修改成你的域名
root /MyBlog/public/; #修改成网站目录下的public文件夹
# 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 {
}
}
然后systemctl restart nginx重启服务
4.安装Node.js
4.1下载Node.js
https://nodejs.org/dist/
这是Node.js下载目录自行寻找最新版本
wget https://nodejs.org/dist/v12.4.0/node-v12.4.0-linux-x64.tar.xz
4.2解压Node.js压缩包
xz -d node-v12.4.0-linux-x64.tar.xz
tar -xvf node-v12.4.0-linux-x64.tar
移动到/usr/local/node目录下
mv node-v12.4.0-linux-x64 /usr/local/node
4.3配置环境变量
#编辑这个文件
vim /etc/profile
#添加内容,指定Node目录
export PATH=$PATH:/usr/local/node/bin
#刷新一下环境
source /etc/profile
输入node -v测试Node.js是否安装成功,输出版本即完成安装
5.安装Hexo框架
5.1创建博客目录
这里作者在根目录安装,如要在其他目录安装,请自行修改nginx配置路径,不然访问不上
#创建目录
mkdir /MyBlog
#进入目录
cd /MyBlog
5.2安装Hexo
npm install -g hexo-cil
5.3初始化Hexo
#要在MyBlog下执行哦~
hexo init
5.4修改配置
vim _config.yml
# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/
# Site 站点信息设置
title:凉城 #站点名字
subtitle: #副标题
description: #站描述
author:凉城 #作者
language: zh-CN #语言
timezone:
# URL 链接设置
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://www.xxx.com #设置成你的域名
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:
6.部署到GitHub上
github的注册在这里我就不多说了
在创建github仓库之前先干一件事情,就是把github的私有邮箱关掉,不然会报错哦,请看图
6.1创建Github仓库
看图
6.2设置本机的Git全局配置
git config --global user.email example@qq.com //这里的eamil改成自己GitHub上的邮件地址
git config --global user.name luckyfloret //这里的name改成你Github的用户名
6.3生成ssh密码
生成ssh密钥的作用是将本地文件部署到Github
cd //进到根目录
ssh-keygen -t rsa -C example@qq.com //不带-C和自己用户名邮箱Github不认可
less .ssh/id_rsa.pub /查看密钥
6.4在Github上导入ssh密钥
执行less .ssh/id_rsa.pub将里面的内容全部复制
6.5配置Hexo与GitHub仓库同步
deploy:
type: git #类型
repo: git@github.com:luckyfloret/luckyfloret.github.io.git #git仓库地址,里面的luckyfloret是github的仓库地址
branch: master
message: '站点更新:{{now("YYYY-MM-DD HH/mm/ss")}}'
7.修改主题
7.1主题下载
https://hexo.io/themes/这是其他博主分享的主题,找一个自己喜欢的下载
7.2使用主题
通过工具上传主题到博客根目录下的一个叫themes的文件夹内,然后解压主题
#解压完后编辑博客根目录下的_config.yml
vim _config.yml
找到theme值,然后修改成自己的主题名称即可
8.部署与访问测试
#在博客根目录下执行哦
#编译Hexo
hexo generate
#将本地仓库更新至Github仓库
hexo d
执行 hexo d 后报错:ERROR Deployer not found: git
这是没安装插件的原因,安装一下插件就好了
npm install --save hexo-deployer-git
然后再执行 hexo d 就发现部署成功了