本文最后更新于2020年11月14日,已超过 3 个月没更新!

Hexo搭建个人博客(三)

部署云服务器(以腾讯云为例)

前期准备

1、本地电脑

  • 网站文件位于本地
  • 所有网站后续修改配置都在本地修改

2、一台服务器

3、远程ssh连接工具(建议选)

服务器部署

1、开放22端口(便于ssh连接)

  • 打开服务器控制台,找见安全组,在入方向里加入22端口,开放端口;
  • 以下服务器的命令运行使用的是putty的ssh连接工具(可选)

2、配置Git

1、安装依赖库

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 

2、安装编译工具(部分服务器镜像自带)

yum install gcc perl-ExtUtils-MakeMaker package

3、下载Git

cd /usr/local/src                #下载目录 
wget https://www.kernel.org/pub/software/scm/git/git-2.29.2.tar.gz      #下载
tar -zxvf git-2.29.2.tar.gz      #解压

4、编译安装

cd git-2.29.2    
make prefix=/usr/local/git all    #编译
make prefix=/usr/local/git install    #安装

5、配置环境变量

echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc

6、刷新检验

source /etc/bashrc  #刷新
git --version   #查看版本号

7、创建用户并修改权限

adduser lavender  #新建用户,以lavender为例
passwd xxxxxxx  #设定密码 
chmod 740 /etc/sudoers   #更改权限
vim /etc/sudoers   #添加用户lavender至sudoers
  • 此时会显示sudoers文件内容,按i键进入编辑模式

  • 按上下左右键查找这一行 root ALL=(ALL) ALL

  • 在下方输入

    lavender     ALL=(ALL)       ALL
    #上方的lavender即为自己创建的用户名,改成自己的
  • Esc退出编辑模式,输入:wq保存退出

8、本地Windows创建密钥

ssh-keygen -t rsa

9、测试服务器

  • 进入cmd,输入:
ssh -v lavender@服务器ip
  • 能正常ssh连接即为成功

3、服务器网站配置

1、创建网站目录

su root  #进入root用户
mkdir /home/hexo  #创建文件夹
chown lavender:lavender -R /home/hexo  #更改权限

2、安装Nginx

yum install -y nginx
systemctl start nginx.service    #启动服务

3、修改Nginx配置并托管文件目录

vim /etc/nginx/nginx.conf 
  • 此时会显示nginx.conf文件内容,按i键进入编辑模式

  • 按上下左右键查找这一行

    server {
        listen       80 default_server;
  • 下方的servre_nameroot分别改成自己的域名和网站目录,例如:

    server { 
        listen          80 default_server; 
        listen          [::]:80 default_server; 
        server_name     lavenderdh.cn;  
        root            /home/hexo; 
  • Esc退出编辑模式,输入:wq保存退出

4、重启服务器

systemctl restart nginx.service

5、建立Git仓库

su root
cd /home/lavender
git init --bare blog.git
chown lavender:lavender -R blog.git

6、自动部署,创建Git钩子

vim blog.git/hooks/post-receive
  • 此时会显示post-receive文件内容,按i键进入编辑模式
  • 输入以下代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件)等。
#!/bin/bash
git --work-tree=/home/hexo --git-dir=/home/git/hexo.git checkout -f
chmod +x /home/lavender/blog.git/hooks/post-receive 
#修改权限

本地部署

1、修改本地配置文件

  • 打开本地博客文件夹(例如:hexo-搭建个人博客(一)中的D:\web\hexo目录),找见_config.yml配置文件,找见以下两处,分别修改:
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://www.lavenderdh.cn   #这里修改为自己的域名
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:
pretty_urls:
  trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
  trailing_html: true # Set to false to remove trailing '.html' from permalinks
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repository: lavender@xx.xx.xx.xx:/home/lavender/blog.git    #用户名@服务器Ip:git仓库位置
  branch: master

2、本地部署上传服务器

  • 打开本地博客文件夹,在地址栏输入cmd,进入当前博客目录的终端,输入:
hexo clean
hexo g -d
  • 解释:
hexo clean #清除缓存文件 (db.json) 和已生成的静态文件 (public)
hexo g -d  #相当于hexo generate后再hexo deploy
# hexo generate 简写hexo g  作用是使用Hexo 生成静态文件
# hexo deploy 简写hexo d 作用是将本地文件部署到服务器

3、检验

  • 输入自己的域名,检验是否成功显示网页,显示成功即大功告成!

可能报错的问题

在输入hexo d后报错

  • hexo d后 报错ERROR Deployer not found: git

  • 解决:在本地博客根目录下运行终端,输入

npm install --save hexo-deployer-git
  • 然后重新部署即可

疏影横斜水清浅,暗香浮动月黄昏