centos8 搭建hexo

原文地址:centos8 搭建hexo

本地操作

安装 Git 和 Node.js

本地需要安装GitNode.js,安装过程略。

安装完git后还要配置环境变量:

右键我的电脑 –> 属性,然后点击高级系统设置 –> 环境变量 –> 选择用户变量或系统变量中的Path,点击编辑;找到Git安装目录,添加以下地址:

```

D:\Program Files\Git\bin

D:\Program Files\Git\mingw64\libexec\git-core

D:\Program Files\Git\mingw64\bin

```

配置SSH 公钥

Windows 上安装Git for Windows之后在开始菜单里打开 Git Bash 输入:

```

git config --global user.name "你的用户名"

git config --global user.email "你的电子邮箱"

```

```

cd ~

mkdir .ssh

cd .ssh

ssh-keygen -t rsa

```

在系统当前用户文件夹下生成了私钥id_rsa和公钥id_rsa.pub。

初始化 Hexo

在电脑任意目录新建一个文件夹hexo,进入文件夹,在空白处点击右键选择 Git Bash,输入:

```

npm install -g hexo-cli

hexo init

npm install

hexo d -fg

hexo serve

```

这样便在本地初始化了 Hexo 文件夹,然后输入:

hexo new post "第一篇文章"

即可新建一篇文章,用文本编辑器打开hexo/source/_post/第一篇文章.md可以快速开始写作。其余使用方法和配置按照 Hexo 官网操作即可。推荐编辑器hexo-editor

2020/4/27更新: hexo-editor速度太慢,改用Typora

修改 deploy 参数

```

deploy:

type: git

repo: git@你的ip:hexo.git

branch: master

```

VPS操作

首先,在 VPS 上安装 Git 和 nginx。

```

yum update -y

yum install git-core nginx -y

```

Nginx 安装完成后需要手动启动,启动Nginx并设置开机自启:

```

systemctl start nginx

systemctl enable nginx

```

如果开启了防火墙,记得添加 HTTP 和 HTTPS 端口到防火墙允许列表。

```

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --permanent --zone=public --add-service=https

firewall-cmd --reload

systemctl restart firewalld.service

```

配置完成后,访问使用浏览器服务器 ip ,如果能看到以下界面,表示运行成功。

配置用户

然后新增一个名为 git 的用户,过程中需要设置登录密码,输入两次密码即可。

```

adduser git

passwd git

```

给用户git赋予无需密码操作的权限(否则到后面 Hexo 部署的时候会提示无权限)

```

chmod 740 /etc/sudoers

vi /etc/sudoers

```

在图示位置root ALL=(ALL:ALL) ALL的下方添加

```

git ALL=(ALL:ALL) ALL

```

然后保存。然后更改读写权限。

```

chmod 440 /etc/sudoers

```

上传 SSH 公钥

接下来要把本地的 ssh 公钥上传到 VPS 。执行

```

su git

cd ~

mkdir .ssh && cd .ssh

touch authorized_keys

vi authorized_keys

```

现在要打开本地的Git Bash,输入vi ~/.ssh/id_rsa.pub,把里面的内容复制下来粘贴到上面打开的文件里。

接着把ssh目录设置为只有属主有读、写、执行权限。代码如下:

```

chmod 600 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

```

然后建立放部署的网页的 Git 库。

```

cd ~

mkdir hexo.git && cd hexo.git

git init --bare

```

测试一下,如果在 Git Bash 中输入ssh git@VPS的IP地址能够远程登录的话,则表示设置成功了。如果你的VPS端口不是22。参考:上传SSH公钥

用户授权

```

su

```

```

mkdir -p /var/www/hexo

chown git:git -R /var/www/hexo

```

配置钩子

现在就要向 Git Hooks 操作,配置好钩子:

```

su git

cd /home/git/hexo.git/hooks

vi post-receive

```

输入内容并保存:(里面的路径看着换吧,上面的命令没改的话也不用换)

```

#!/bin/bash

GIT_REPO=/home/git/hexo.git

TMP_GIT_CLONE=/tmp/hexo

PUBLIC_WWW=/var/www/hexo

rm -rf ${TMP_GIT_CLONE}

git clone $GIT_REPO $TMP_GIT_CLONE

rm -rf ${PUBLIC_WWW}/*

cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}

```

赋予可执行权限:

```

chmod +x post-receive

```

配置 nginx

然后是配置 nginx。执行

```

su

```

```

vi /etc/nginx/conf.d/hexo.conf

```

```

server {

  listen  80 ;

  listen [::]:80;

  root /var/www/hexo;

  server_name bore.vip www.bore.vip;

  access_log  /var/log/nginx/hexo_access.log;

  error_log  /var/log/nginx/hexo_error.log;

  error_page 404 =  /404.html;

  location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {

    root /var/www/hexo;

    access_log  off;

    expires      1d;

  }

  location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {

    root /var/www/hexo;

    access_log  off;

    expires      10m;

  }

  location / {

    root /var/www/hexo;

    if (-f $request_filename) {

    rewrite ^/(.*)$  /$1 break;

    }

  }

  location /nginx_status {

    stub_status on;

    access_log off;

}

}

```

因为放中文进去会乱码所以就不在里面注释了。代码里面配置了默认的根目录,绑定了域名,并且自定义了 404 页面的路径。

最后就重启 nginx 服务器:

```

systemctl restart nginx

```

如果上传网页后,Nginx 出现 403 Forbidden,执行:

```

vi /etc/selinux/config

```

将SELINUX=enforcing 修改为 SELINUX=disabled 状态。

```

SELINUX=disabled

```

重启生效,reboot。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353