Hexo+Github+云服务器搭建博客


使用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 就发现部署成功了

测试访问:https://luckyfloret.github.io


文章作者: 凉城
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 凉城 !
评论
  目录