# Hexo 搭建个人博客(三)

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

# 前期准备

# 1、本地电脑

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

# 2、一台服务器

  • 本人以腾讯云服务器为例

  • 云服务器链接如下

    • 腾讯云:https://cloud.tencent.com/

      • 学生优惠:https://cloud.tencent.com/act/campus?fromSource=gwzcw.596698.596698.596698(网址)
    • 阿里云:https://cn.aliyun.com/

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

  • 可选择 Putty
    • 下载链接:https://www.putty.org/
  • 也可以选择 XShell
    • 下载链接:https://www.netsarang.com/zh/xshell/

# 服务器部署

# 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
  • 然后重新部署即可