从零开始在服务器搭建Hexo博客

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010011236/article/details/85109474

也可以点击该链接:http://106.12.200.86/post/5454b416.html#more

一、开发环境

  1. ubuntu16.04
  2. node.js
  3. github
  4. Windows10 64bits

二、在本地Windows上搭建Hexo

2.1、安装node.js

直接从官网下载node.js安装文件进行安装即可。

2.2、安装GitHub

直接从官网下载GitHub安装文件进行安装即可。

2.3、安装Hexo

(1)在D盘下新建Hexo文件,以备后来使用。
(2)然后在该目录下打开Git Bash,然后输入 npm install -g hexo-cli 进行安装,如果出现警告不需要管,直接进行下面的步骤即可。
(3)初始化博客文章放置目录,而上述步骤(1)建立的 D:/Hexo 目录就是用来放置Hexo博客文章的,在Git Bash中具体执行命令如下所示:

cd ../
hexo init Hexo #出现警告不用管
cd Hexo  # 进入该目录
npm install #执行完后出现警告信息不用管

(4)新建markdown文件,然后生成Hexo

#在D:/Hexo文件下新建.md文件
hexo g
hexo server #但是文章的标题显示为(no title)

首先查看当前使用主题(默认安装的主题)目录下的language文件夹中是否有zh-CN.yml或zh-Hans.yml文件,如果有该文件则表示支持中文显示。
然后重新打开markdown文章,在文章的开头加上如下语句,注意一定要安装这种格式进行。

---
title xxx教程
---

然后清除原先生成的静态博客文件,重新生成并开启服务即可显示文章的中文标题。具体执行步骤如下所示:

hexo clean && hexo g && hexo s

三、服务器上搭建步骤

1、安装git

apt install git
git --version #查看版本号

2、安装Nginx

apt install nginx
nginx -v #查看版本号

然后在浏览器中输入服务器ip,看到如下图所示内容即表示安装成功。
在这里插入图片描述

3、安装nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
nvm --version   # 查看版本号,如果此时出现 command not found那么重新打开窗口即可

4、安装node.js

nvm install stable
# 查看相应的版本号
node --version
npm --version

5、安装hexo

npm install -g hexo-cli # 出现警告不用管直接往下执行即可

在home目录下新建一个ubuntu/www/hexo文件,作为以后存储博客文档使用。

cd /home
mkdir ubuntu
cd ubuntu
mkdir -p www/hexo

6、配置Nginx

使用vim修改Nginx的默认配置文件

vim /etc/nginx/sites-available/default

配置Ngin,把站点指向该文件即可。具体配置如下所示:

#root /var/www/html;
# by myself
root /home/ubuntu/www/hexo;

重启Nginx服务。

service nginx start

然后在浏览器中输入服务器地址,可以看到出现错误。这是因为 /home/ubuntu/www/hexo 目录下是空的,所以会导致出错。

7、配置服务器Git

(1)创建Git用户
创建一个Git用户,专门用来运行管理Git服务。

adduser git
#这边密码其实不重要,因为后面是用ssh秘钥进行同步的
passwd git

(2)创建证书

#1.切换到git用户
su git
#2.创建 .ssh 目录
cd ~/
mkdir .ssh && chmod 700 .ssh
#3.创建秘钥保存文件
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys #复制本机生成的公共秘钥
exit #切换为root

(3)创建git仓库
在服务器端配置Git,即相当于在服务器搭建了一个GitHub。当我们在本地写完博客并生成静态网页后,直接通过git把hexo/public中的文件同步到自己服务器上的GitHub上即可完成同步。

cd /home/ubuntu
#使用git创建一个名为hexo的裸仓库
git init --bare hexo.git
#为hxeo创建一个钩子
vim /home/ubuntu/hexo.git/hooks/post-receive

在该文件中添加如下代码:

git --work-tree=/home/ubuntu/www/hexo --git-dir=/home/ubuntu/hexo.git checkout -f

最后保存并退出,同时设置该文件为可执行文件。

chmod +x /home/ubuntu/hexo.git/hooks/post-receive

(4)修改hexo.git目录的拥有者为git用户

chown -R git:git hexo.git
chown -R git:git www/hexo
chmod -R 755 www/hexo

(5)为了安全考虑禁用git用户的shell登录权限。

chsh git
#原先是/bin/bash
#在提示框中输入 /usr/bin/git-shell

(6)在本地电脑上测试上述安装git服务能否起作用,在D:/Hexo/gitTest文件中打开 Git Bash Here,然后输入 git clone git@你服务器的ip:/home/ubuntu/hexo.git,如果成功会出现如下提示:

Cloning into 'hexo'...
warning: You appear to have cloned an empty repository.

因为代码仓库目前还是空的,所以会提示这个是一个空仓库。
如果出现如下图所示错误:
在这里插入图片描述
是因为已经验证过一次服务器了,再次验证时会出现该错误。只要删除本机中认证资讯即可[5]。

ssh-keygen -R 服务器IP

四、上传Hexo

在上传Hexo之前,需要配置本地Hexo的配置文件。

1、本地Hexo配置

打开本地Hexo根目录下的_config.yml文件,然后输入以下配置信息:

deploy:
  type: git
  repo: git@你服务器的ip:/home/ubuntu/hexo.git #其中git为服务器的用户名
  branch: master

2、上传Hexo

可以在本地的Hexo根目录下打开 Git Bash Here,然后输入以下命令:

hexo g
hexo d

执行完上述命令,最后提示:INFO Deploy done: git,则表示成功。
然后在浏览器上输入服务IP即可查看博客。

3、删除文章

#在本地Hexo中执行删除操作然后同步到服务器上
hexo clean
rm xxx.md
hexo g
hexo d

参考文献

[1]hexo官方文档:https://hexo.io/docs/
[2]nvm文档:https://github.com/creationix/nvm
[3]在本机上生成ssh公钥:https://blog.csdn.net/qq_17524035/article/details/70762162
[4]在服务器上搭建Git:
http://blog.coderclock.com/2017/05/20/hexo/use-git-deployment-hexo-blog-on-ubuntu-server/
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000
[5]再次使用ssh连接提示错误:https://segmentfault.com/a/1190000008679848
[6]使用Hexo发布博客的流程:https://www.jianshu.com/p/e1ccd49b4e5d

猜你喜欢

转载自blog.csdn.net/u010011236/article/details/85109474