书写背景:之前基于GitHub和HEX出现访问很慢和图片无法显示,主要是国内很多时候访问GitHub速度会很慢,阅读博客的体验很不好,为了解决这个问题,我们可以将Hexo搭建到自己的服务器上,这样访问博客的速度就有了很大的提升!
一、环境
1.1 相关信息
电脑信息:M1芯片,MacOS Monterey 12.2.1
服务器信息:腾讯云轻量级服务器
系统信息:CentOS Linux release 7.9.2009 (Core)
二、服务端操作
2.1 安装git和nginx
1
| yum install git nginx -y
|
2.2 创建git用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| useradd git
passwd git
chmod 740 /etc/sudoers
vim /etc/sudoers
git ALL=(ALL) ALL
chmod 400 /etc/sudoers
|
2.3 给git用户添加ssh密钥
1 2 3 4 5 6 7 8 9 10 11 12
| su git
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
|
2.4 创建git仓库并使用git-hooks实现自动部署(git用户操作)
1 2 3 4 5 6 7 8 9 10
| sudo mkdir -p /var/repo
sudo mkdir -p /var/www/hexo
cd /var/repo/
sudo git init --bare blog.git
sudo vim /var/repo/blog.git/hooks/post-update
|
post-update内容如下:
1 2
| #!/bin/bash git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f
|
给post-update文件授权
1 2 3 4 5 6
| sudo chown -R git:git /var/repo
sudo chown -R git:git /var/www/hexo
sudo chmod +x /var/repo/blog.git/hooks/post-update
|
2.5 配置Nginx
1 2 3 4 5 6
| exit
cd /etc/nginx/conf.d/
vim blog.conf
|
blog.conf文件详细内容如下:
1 2 3 4 5 6
| server { listen 80 default_server; listen [::] default_server; server_name blog.geekdive.com; root /var/www/hexo; }
|
检查Nginx语法并启动Nginx
1 2 3 4 5 6
| nginx -t
systemctl start nginx
systemctl status nginx
|
2.6 修改git用户的默认shell环境
修改/etc/passwd文件最后一行,将/bin/bash修改为/usr/bin/git-shell
三、本地配置(Mac)
3.1 安装git
1 2 3 4
| xcode-select --install
git --version
|
3.2 安装Node.js和 Npm
下载对应安装包安装或者通过homebrew安装皆可。
3.3 安装hexo及相关插件
1
| sudo npm install hexo-cli hexo-server hexo-deployer-git -g
|
3.4 本地初始化博客站点
1 2
| hexo init ~/blog npm install hexo-deployer-git --save
|
3.5 本地hexo配置
1 2 3 4 5 6 7 8 9 10 11
| cd blog vim _config.yml
deploy: type: git repo: root@xxx.xx.xxx.xxx:/var/repo/blog.git branch: master
|
3.6 将本地Hexo代码部署到服务器
1 2 3 4 5 6 7 8
| hexo clean
hexo generate
hexo deploy
|
3.7 测试
输入域名或者服务器IP地址即可打开博客。