写点什么

在自己的服务器上部署 hexo 博客

作者:为自己带盐
  • 2021 年 12 月 10 日
  • 本文字数:2648 字

    阅读完需:约 9 分钟

在自己的服务器上部署hexo博客

在个人网站上写博客,很爽,很自由。但也有很多不得不考虑的问题,比如服务器的续费,域名,ssl 证书的续费,备案等等,虽然金钱成本不是很高,但需要额外花时间,花精力去维护,所以我决定把博客逐步搬到新的平台。

目前正在往知乎和 InfoQ 搬运,也不是把所有的内容都搬过去,我现在看自己以前写的东西,大部分都太小儿科了,有种翻自己 qq 空间的感觉,那种的我就不搬了,就让他们沉淀在历史长河里吧。而也有一些我觉得我是花了心思,而且到现在也有实际使用价值的文章,就会搬过去。以后新发的文,也会在新的平台,InfoQ 主要写技术类文章,一些个人感想什么的,就会放到知乎上。

但还是有必要记录下怎么搭建自己的博客平台方法的,这里我就以我搭建 Hexo 博客的精力为例,介绍一下搭建的全过程。

好了,开整。

第一步:安装 Node

1.node 管网下载安装包

2.一路 next,注意选一下安装路径

3.安装完成后,检查一下

node -vnpm -v
复制代码



4.配置下环境变量(这一步不做也不影响后边的操作)

npm config set prefix "D:\programming\nodejs\node_global"npm config set cache "D:\programming\nodejs\node_cache"
复制代码

环境配置:新增环境变量NODE_PATH和添加Path,两个值都为 D:\programming\nodejs\node_global

第二步:安装 hexo

这步其实完全参照 hexo 官网操作即可:https://hexo.io/zh-cn/docs/

npm i hexo-cli -ghexo
复制代码

1.安装完成后,就可以初始化 hexo 博客文件夹了

mkdir hexo-blogcd hexo-blog && npm init -y
复制代码

2.初始化 hexo 项目

hexo init myblog && cd myblognpm i
复制代码

3.然后安装一个好看点的主题,我用的是 next

git clone https://github.com/iissnan/hexo-theme-next themes/next
复制代码

4.在本地配置文件中设置 theme 属性



5.本地执行 hexo 项目,添加 start 脚本



6.本地执行 npm start,然后打开浏览器,输入http://localhost:4000



第三步 安装 git 环境

1.git 安装,参考官网https://git-scm.com/downloads

2.生成 ssh 认证,在本地的 git bash 里执行如下命令

git config --global user.name "yourname"git config --global user.email youremail@example.comssh-keygen -t rsa -C "youremail@example.com"git config --global core.autocrlf false  // 禁用自动转换,这个不设置后面上传时会出现警告
复制代码

3.最后获取到的 ssh 认证一般保存在C:\Users\yourname\.ssh路径下



第四步 服务器配置

1.搭建远程 git 私有仓库,登录到远程服务器,找一个趁手的 ssh 服务工具,可以直接用 Windows 自带的 powershell 或者 Terminal,我这里推荐 MobaXterm,主要是免费,也好使,xshell 虽好,就是有点氪金

2.安装 git

git --version // 如无,则安装yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-develyum install -y git
复制代码

3.创建用户并配置仓库

useradd gitpasswd git // 设置密码su git // 这步很重要,不切换用户后面会很麻烦cd /home/git/mkdir -p projects/blog // 项目存在的真实目录mkdir repos && cd reposgit init --bare blog.git // 创建一个裸露的仓库cd blog.git/hooksvi post-receive // 创建 hook 钩子函数,输入了内容如下
复制代码


#!/bin/shgit --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f
复制代码

4.添加完成后修改权限

chmod +x post-receiveexit // 退出到 root 登录chown -R git:git /home/git/repos/blog.git // 添加权限
复制代码

5.测试 git 仓库是否可用,在本地找一个空白文件夹

git clone git@server_ip:/home/git/repos/blog.git
复制代码

如果能把空仓库拉下来,就说明 git 仓库搭建成功了



6.在本地建立和服务器的 ssh 信任关系,打开 git bash 终端

ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub git@server_ipssh git@server_ip // 测试能否登录
复制代码

注意:此时的 ssh 登录 git 用户不需要密码!否则就有错,请仔细重复步骤 3-6

7.为了安全起见禁用 git 用户的 shell 登录权限,从而只能用 git clone,git push 等登录

cat /etc/shells // 查看 git-shell 是否在登录方式里面which git-shell // 查看是否安装vi /etc/shells添加上2步显示出来的路劲,通常在 /usr/bin/git-shell
复制代码

修改 /etc/passwd 中的权限

// 将原来的git:x:1000:1000::/home/git:/bin/bash
// 修改为git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
复制代码

第五步 搭建 nginx 服务器

1.下载并安装 nginx(选一个合适的版本即可,我直接用的当前最新的 1.18.0)

cd /usr/local/srcwget http://nginx.org/download/nginx-1.18.0.tar.gztar xzvf nginx-1.18.0.tar.gzcd nginx-1.18.0./configure // 如果后面还想要配置 SSL 协议,就执行后面一句!./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_modulemake && make installalias nginx='/usr/local/nginx/sbin/nginx' // 为 nginx 取别名,后面可直接用
复制代码

2.配置 nginx 文件

先启动下看看是否安装成功

nginx //启动后,本地浏览器输入服务器ip,nginx默认就是80端口,看看有没有标志性的Welcom出现
复制代码

修改配置文件

nginx -s stop // 先停止nginxcd /usr/local/nginx/confvi nginx.conf修改 root 解析路径,如下图同时将 user 改为 root 如下图,不然nginx无法访问 /home/git/projects/blognginx -s reload
复制代码



第六步 部署发布

至此我们就把本地和服务器的环境全部搭建完成,现在利用 hexo 配置文件进行链接

1.编辑_config.yml 的 deploy 属性



2.在 package.json 中添加 npm 脚本

"scripts": {  "deploy": "hexo clean && hexo g -d",  "start": "hexo clean && hexo g && hexo s"}
复制代码

3.这下在本地调试就用npm start,调试好了就上传到服务器,美滋滋~快通过你的服务器 ip 访问吧

npm run deploy
复制代码



番外 给 Next 主题增加评论功能

我们的博客发布好后,可能需要增加一些留言评论,访问统计等功能,这里增加一种方式。

因为我前阵子刚升级了 Next7.8.0 主题,相关的这些配置简单了许多,这里着重介绍下。

1.注册 leancloud 账号:https://console.leancloud.cn

2.创建开发版应用



3.创建 Class

选择数据存储->创建 Class->权限设置成无限制,所有用户,命名为”comment”



4.打开设置->安全中心->把数据存储之外的服务全部取消,并配置安全域名



5.进入应用凭证,赋值 AppID,AppKey

6.打开 valine 地址:https://www.jsdelivr.com/package/npm/valine,赋值最新的 cdn 地址



7.配置 next 配置文件

a.找到 valine 配置项目,粘贴 valine 的 cdn 地址

b.配置之前粘贴的 appid,appkey 等,开启评论




如果有的文章不需要开启评论,可以在头部标签栏,设置 comments:fase



最终呈现效果就是这样

用户头像

学着码代码,学着码人生。 2019.04.11 加入

狂奔的小码农

评论

发布
暂无评论
在自己的服务器上部署hexo博客