搭建属于自己的hexo博客

由于本人的服务器到期,所以需要在新的服务器上在搭建一次博客,所以就记录一下搭建博客的过程,还记得第一次搭建hexo博客是的艰难,哈哈哈哈。

当然不止搭建到自己服务器上这一种,可以托管到Github或者cnblog都可以。

搭建过程大致如下

  • 服务器安装 Nodejs
  • 服务器安装 Git
  • 服务器安装 Nginx
  • 本地安装 Hexo,Nodejs,Git
  • 本地配置免密登录
  • 服务器创建 Git 仓库

服务器的配置

安装配置 Nodejs

1
2
3
4
5
6
7
8
9
cd /tmp && wget https://nodejs.org/dist/v17.5.0/node-v17.5.0-linux-x64.tar.xz 
tar xf node-v17.5.0-linux-x64.tar.xz
mv node-v17.5.0-linux-x64 /usr/local/node
ln -s /usr/local/node/bin/node /bin/node
ln -s /usr/local/node/bin/npm /bin/npm
echo 'export PATH=/usr/local/node/bin:$PATH' >> /etc/profile
source /etc/profile
node -v
npm -v

Nginx

安装 Nginx

1
2
3
4
5
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
cd /tmp && wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar xf nginx-1.9.9.tar.gz
cd nginx-1.9.9 && ./configure
make && make install

配置 Nginx服务

1
2
3
4
5
6
7
8
9
10
## 创建 hexo 博客存放位置
mkdir /data&&cd /data&&mkdir blog&&cd blog
## 修改 Nginx 配置文件
vi /usr/local/nginx/conf/nginx.conf

## 修改配置文件中以下几点
## 1、server_name,修改域名或ip
server_name 服务器公网IP;
## 2、root index.html,修改为 hexo 博客存放的位置
root /data/blog

打开 Nginx 服务:

1
2
3
cd /usr/local/nginx/sbin
# 启动 nginx
./nginx

一键式安装 Git:

1
2
3
4
5
6
7
8
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
cd /tmp && wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
tar xf git-2.9.5.tar.gz
cd git-2.9.5 && make all prefix=/usr/local/git
make install prefix=/usr/local/git
echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
source /etc/bashrc
git version

服务端创建 Git 仓库
服务器上创建一个 Git 仓库,该仓库中新建一个 post-receive 钩子文件。

1
2
3
cd ~
git init --bare hexo.git
vi ~/hexo.git/hooks/post-receive

填写以下内容,其中的–work-tree 为 hexo 博客目录

1
git --work-tree=/data/blog --git-dir=/root/hexo.git checkout -f

授予钩子文件可执行权限

1
2
chmod +x ~/hexo.git/hooks/post-receive
chmod -R 777 /data/blog

至此,Git 仓库创建并配置完成,对应的本地客户端也需要配置一下!

在本地计算机 hexo 的工程目录下,找到 _config.yml,对 deploy 参数进行修改,如下图所示

Deployment

Docs: https://hexo.io/docs/one-command-deployment

1
2
3
4
deploy:
type: git
repo: root@公网IP:/root/hexo.git
branch: master

本地配置

首先创建一个大目录

安装nodejs

安装git

以上两个官网下载,然后安装到博客的那个文件夹即可

安装 hexo

Hexo 也是一键式安装,安装前,设置一下 npm 源:

1
npm config set registry https://registry.npm.taobao.org
1
2
npm install -g hexo-cli
hexo -v

本地客户端创建 Hexo 博客目录并初始化启动博客:

再在大目录里创建一个目录用于存放博客

1
2
3
hexo init
hexo g
hexo s

启动之后本地浏览器 localhost:4000 访问一下是否成功。

windows无法使用ssh-copy-id解决办法。

powershell中输入如下脚本

1
2
3
4
5
6
7
8
9
function ssh-copy-id([string]$userAtMachine, $args){   
$publicKey = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
if (!(Test-Path "$publicKey")){
Write-Error "ERROR: failed to open ID file '$publicKey': No such file"
}
else {
& cat "$publicKey" | ssh $args $userAtMachine "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"
}
}

到这里就差不多了,后面有主题配置,根据自己主题来进行细致的修改吧。