Hexo在宝塔安装Hexo博客+butterfly主题

前言

hexo博客应该不陌生,大多数人都是选择使用github来进行搭建,这样子也可以白嫖博客。但是总有人想要在服务器搭建(emm..就是我)。所以就有这一篇教程。

原理

其实跟用github搭建是一样的原理,就是将上传的服务器从github更换为了你的服务器。需要在你的服务器上面搭建一个git仓库。很简单

搭建本地Hexo

首先我们搭建本地的Hexo博客

环境要求(注意配置好nodejs的环境配置)

安装Hexo

首先创建一个你想要放置博客的目录,例如:D:\hexoblog

然后在这个目录内右键-Git Bash Here,会弹出bash窗口,如下图

图片[1]-Hexo在宝塔安装Hexo博客+butterfly主题-忽然笔记

输入安装hexo代码

npm install hexo -g # 安装Hexo

等待安装完成,如下图(我市已经安装过了,所以运行这个命令属于是更新)

图片[2]-Hexo在宝塔安装Hexo博客+butterfly主题-忽然笔记

安装完成后,继续执行hexo的初始化命令:

hexo init # 初始化hexo

期间可能会出错,如图:

图片[3]-Hexo在宝塔安装Hexo博客+butterfly主题-忽然笔记

这是由于连接github失败所导致的,因为github是国外网站,所以出错是正常的,反复的执行命令即可。

等待初始化完成后目录里就会多出很多文件,这就是hexo的文件。

图片[4]-Hexo在宝塔安装Hexo博客+butterfly主题-忽然笔记

初始化成功会显示如下:

INFO  Start blogging with Hexo!

接下来生成静态文件:

hexo g

生成完毕后开启本地服务:

hexo s
图片[5]-Hexo在宝塔安装Hexo博客+butterfly主题-忽然笔记

生成key

这一步跟github搭建是一样的需要一个key

定义邮箱(更换为你的邮箱地址就行)
git config --global user.email "youemail"
定义名称(更换自定义一个名称就行)
git config --global user.name "huran"
生成ssh 公钥

在电脑桌面右击,点击Git Bash Here打开命令行终端,执行如下命令(直接按三次回车生成密钥)

ssh-keygen -t rsa

生成的文件默认在~/.ssh目录中,看到有id_rsa,id_rsa.pub这些文件即可, Win10中就是 我的电脑/C盘/用户/你自己的用户名/.ssh/ 就可以看到了,别问为啥,后期我们会用到。

安装butterfly主题

官方文档:[Butterfly 安裝文檔(一) 快速開始 | Butterfly](https://butterfly.js.org/posts/21cfbf15/)

参考官方文档使用npm安装方式进行安装,这里就不做过多的介绍了,文档里描述的很详细

服务器搭建git仓库

首先添加站点,PHP版本选择纯静态,其余的默认即可

图片[6]-Hexo在宝塔安装Hexo博客+butterfly主题-忽然笔记

创建完成后设置站点的配置文件,将root这一栏更改为 /var/hexo; 如下图:

图片[7]-Hexo在宝塔安装Hexo博客+butterfly主题-忽然笔记

设置完后保存即可。

接下来部署仓库,ssh连接到你的服务器

安装git
yum install git
创建Git账户
adduser git
添加账户权限
chmod 740 /etc/sudoers
vim /etc/sudoers

找到
Allow root to run any commands anywhere
root ALL=(ALL) ALL

添加以下内容

git ALL=(ALL) ALL

保存退出(按 Esc 键退出编辑模式,输入”:wq” 保存退出)并改回权限。

chmod 400 /etc/sudoers
设置git账户密码
sudo passwd git

切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限

su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

然后将前面本地电脑中生成的id_rsa.pub文件中的公钥复制到authorized_keys

chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh

在本地Git终端中测试是否能免密登录git,其中下面SERVER为填写自己的云主机IP一定替换过来,执行输入yes后不用密码就说明好了(KK这里没有免密成功但是不影响使用,你如果也没有可以放弃直接下一步步骤,反正我这边暂时找不到原因放弃了只是后期需要输入密码,不过还行也就1秒钟的事情,嫌麻烦的可以自己想办法解决一下)。

ssh -v git@SERVER

创建目录

repo作为为Git仓库目录

mkdir /var/repo
chown -R git:git /var/repo
chmod -R 755 /var/repo
hexo作为网站根目录
mkdir /var/www
mkdir /var/www/hexo
chown -R git:git /var/hexo
chmod -R 755 /var/hexo
然后创建一个裸的 Git 仓库,返回root目录创建。
su root
cd /var/repo
git init --bare hexo.git

创建一个新的 Git 钩子,用于自动部署 在 /var/repo/hexo.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。

vim /var/repo/hexo.git/hooks/post-receive

按 i 键进入文件的编辑模式,在该文件中添加两行代码(将下边的代码粘贴进去),指定 Git 的工作树(源代码)和 Git 目录(配置文件等)

# !/bin/bash

git --work-tree=/var/hexo --git-dir=/var/repo/hexo.git checkout -f

然后,按 Esc 键退出编辑模式,输入”:wq” 保存退出。

修改文件权限,使得其可执行。

chown -R git:git /var/repo/hexoBlog.git/hooks/post-receive
chmod +x /var/repo/hexoBlog.git/hooks/post-receive

到这里,我们的 Git 仓库算是完全搭建好了

上传服务器

打开你本地的博客根目录,打开_config.yml,找到deploy,更换SERVER为你的域名

deploy:
  type: git
  repo: git@SERVER:/var/repo/hexo.git
  branch: master

保存

在博客根目录打开Git Bash Here,上传至服务器

hexo clean && hexo g -d

常见问题

我在部署过程中,执行 hexo d发现部署老是出错,什么权限不允许之类的,这里我们需要检查我们在上述的git操作部署是否使用了git用户操作,若是没有,需要给相应的目录更改用户组 使用.

我们需要给权限输入下方命令

chown -R git:git /var/repo/

这条命令递归的将repo目录及其子目录用户组设置为git。同时使用

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

这样即可解决此类问题。

Tips

有任何的问题留言即可。因为这边文章是我边部署边写的,中间出现的问题很少,基本没有报错的出现,所以无法规避你们的错误。如果遇到问题可以留言咨询。

Invitation
HuRan
854262623
created:04/03/2022
Welcome to Candyhome

Use this card to join the candyhome and participate in a pleasant discussion together .

Welcome to Knlde's candyhome,wish you a nice day .

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论