Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

Hexo 产生的静态文件只要放到任何支持 html 的空间或者服务器均可访问。主要的选择方案有以下两种

  1. GitHub Pages
  2. VPS

GitHub Pages 本用于介绍托管在GitHub的项目,不过,由于他的空间免费稳定,用来做搭建一个博客再好不过了。
每个帐号只能有一个仓库来存放个人主页,而且仓库的名字必须是username/username.github.io,这是特殊的命名约定。你可以通过http://username.github.io 来访问你的个人主页。)

Github Pages 好处是完全免费,搭建并部署到教程可以参考 Hexo+Github Pages搭建个人独立博客。我个人的方案是第二种,部署到自己的服务器。

安装 Hexo

更新软件包

apt-get update
apt-get upgrade

安装依赖

Hexo 依赖于 Node.js 和 Git,需要先安装。

安装 Git

apt install git-core -y

查看 git 版本

git --version

安装 Node.js

使用以下命令安装 Node.js

wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

更新

source ~/.profile

安装 Node.js

nvm install stable

查看node.js版本

node --version

查看npm版本

npm --version

安装 Hexo

npm install hexo-cli -g

在 hexo 目录下初始化 hexo 博客,也可以是任意你想要的名字

hexo init hexo

进入博客根目录,并且安装相关插件依赖等

cd hexo
npm install

安装完成后需要用一下命令

hexo g # 渲染 Source 目录下文件问静态页面
hexo s # 本地跑一个 server 来看博客效果。

然后可以在 http://localhost:4000/ 查看运行效果。

配置服务器环境

服务器环境我选择使用 Debian + Nginx 环境。

必须先执行 cd 把目录切换到root后才能执行下面操作

安装 Nginx

Nginx 是一个高性能的 HTTP 和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。

执行命令安装Nginx

apt-get install nginx

启动 Nginx

Nginx 安装完成后需要手动启动

service nginx start

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

顺便提下 Nginx 配置参数

start nginx

service nginx start

stop nginx

service nginx stop

other parameters

reload        restart       start         status        stop

配置虚拟主机

虚拟主机(Virtual Host)可以在一台服务器上绑定多个域名,架设多个不同的网站,一般在开发机或者要部署多个小网站的服务器上需要配置虚拟主机。

创建新的网站目录

Nginx 默认把网页文件存在 /var/www/html 目录。

/var/www/html/ 目录下创建 index.html 文件。写上以下内容,用于测试虚拟主机运行情况。

<html><head><title>Welcome to Blog!</title></head><body><h1>Hello World!</h1></body>
</html>

创建虚拟主机配置文件

在 /etc/nginx/conf.d/ 创建虚拟主机配置文件 hexo.conf,并且填写以下代码

server {listen 80;listen [::]:80;root /var/www/html;index index.html index.htm index.nginx-debian.html;server_name www.abc.com abc.com;location / {try_files $uri $uri/ =404;}
}

如果需要部署SSL,先把SSL证书和Key上传到VPS你喜欢的文件夹,并且填写以下代码

server {listen 80 default backlog=2048;listen 443 ssl;server_name abc.com;if ($scheme = http ) {return 301 https://www.$host$request_uri;}#ssl on;    #注释掉ssl_certificate /etc/nginx/ssl/ssl.crt;ssl_certificate_key /etc/nginx/ssl/ssl.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;ssl_prefer_server_ciphers on;location / {root /var/www/html;     #根目录的相对位置index index.html index.htm;}
}

重启 Nginx 服务器,使服务器设定生效

service nginx restart

如果执行 service nginx restart时提示如下错误

Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.,

执行 nginx -t

如果提示下面这句错误命令

nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/default:22
nginx: configuration file /etc/nginx/nginx.conf test failed

那么执行 cd /etc/nginx/sites-enabled进入sites-enabled文件夹

执行rm default删除default

再执行nginx -t出现下面命令

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

执行下面的命令重启nginx

service nginx restart

查看 nginx 的状态

service nginx status

OK,Nginx重新加载成功,可以继续了

进入浏览器输入自己的域名,能看到以下结果就表示虚拟主机配置成功。

部署 Hexo 到服务器

Hexo 可以使用 git 方式部署。由于第一步已经安装完成Git,所以直接继续

配置服务器环境

创建空白 git 仓库,并且设置 git hook

cd ~
mkdir hexo.git && cd hexo.git
git init --bare

/root/hexo.git/hooks 创建配置文件 post-receive,并且填写以下代码

#!/bin/bash
GIT_REPO=/root/hexo.git  #git仓库
TMP_GIT_CLONE=/tmp/hexo
PUBLIC_WWW=/var/www/html #网站目录
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}

赋予脚本的执行权限

cd /root/hexo.git/hooks
chmod +x post-receive

配置本机环境

在博客目录下运行下面命令,安装 git 部署工具。

cd
cd hexo
npm install hexo-deployer-git --save

修改博客的配置文件 _config.yml,修改deploy选项:

deploy:type: gitmessage: updaterepo: root@1.1.1.1:/root/hexo.gitbranch: master

然后运行 hexo g -d 部署本地渲染网页到服务器上。

错误

如果提示下面这句错误命令

INFO  Deploying: git
INFO  Setting up Git deployment...
Initialized empty Git repository in /root/hexo/.deploy_git/.git/*** Please tell me who you are.Rungit config --global user.email "you@example.com"git config --global user.name "Your Name"to set your account's default identity.
Omit --global to set the identity only in this repository.fatal: unable to auto-detect email address (got 'root@debian.(none)')
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: Spawn failedat ChildProcess.<anonymous> (/root/hexo/node_modules/hexo-util/lib/spawn.js:52:19)at ChildProcess.emit (events.js:197:13)at Process.ChildProcess._handle.onexit (internal/child_process.js:254:12)

解决方案: 见提示就知道, 要您填上你得注册的邮箱和昵称,例如:

git config --global user.email "you@example.com" #自行更换自己的邮箱
git config --global user.name "Your Name" #自行更换自己的昵称

使用 Debian 从 0 开始搭建 hexo 博客相关推荐

  1. 从 0 开始搭建 Hexo 博客

    欢迎访问我的 hexo 博客 :https://guoshizhan.github.io 前言:本教程使用的是 Windows 操作系统,所使用的编辑软件是 notepad++,不要使用记事本或者 E ...

  2. 搭建hexo博客历程二- Gitee版 (主要 解决404和样式丢失)

    前期的GitHub版搭建hexo博客 前期的node .hexo等等都已经配置完成,只需要在Gitee上建库,以及修改一些配置.继续依葫芦画瓢,在Gitee上画出来.例如 https://gitee. ...

  3. 阿里云Serverless 极速搭建Hexo博客

    阿里云Serverless 极速搭建Hexo博客 阿里云Serverless 极速搭建Hexo博客 地址 开通函数计算服务 安装Serverless Devs命令行工具 安装Node.js环境. 解压 ...

  4. 腾讯云搭建hexo博客

    title: 腾讯云搭建hexo博客 tags: hexo,腾讯云 文章目录 title: 腾讯云搭建hexo博客 tags: hexo,腾讯云 @[toc] 1. 腾讯云 学生认证购买 重置密码和网 ...

  5. 史上最详细“截图”搭建Hexo博客——For Windows

    http://angelen.me/2015/01/23/2015-01-23-%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86%E2%80%9C%E6%88 ...

  6. python公众号留言功能_搭建hexo博客给公众号制作留言功能

    大家都知道,18年3月份后注册的公众号都不给留言功能了,作为主要以技术文章为主的公众号,没有留言功能真是不方便.周末这两天我就一直在折腾这个留言功能,借助博客的留言功能,放在阅读原文里.昨天晚上终于折 ...

  7. 搭建hexo博客给公众号制作留言功能

    此文首发于公众号 「Python知识圈」,欢迎直接去公众号观看. 阅读文本大概需要 5 分钟. 大家都知道,今年注册的公号都不给留言功能了,作为主要以技术文章为主的公众号,没有留言功能真是不方便.上周 ...

  8. centos7搭建hexo博客步骤

    安装插件 1.nodejs wget https://nodejs.org/dist/v14.17.4/node-v14.17.4-linux-x64.tar.xz tar -xvf node-v14 ...

  9. Windows下使用GitHub Pages搭建hexo博客详细教程以及Next主题超全配置

    根据下面的教程搭建的博客见这里 前言 马上要进入研究生了,不能再过浑浑噩噩的日子了,搭建一个小网站,用于记录自己所学的东西.其实,之前在腾讯云1元乞丐版上也搭建过博客,但是呢,只用来扯淡了.这次使用 ...

最新文章

  1. filter java web_java web filter 之一 基础实现
  2. python中随机输入数字再排序
  3. 传京东将收购格力电器5%股权 官方回应:消息不实
  4. 【python】字典的嵌套
  5. mnist手写数字辨识实战——改进的LeNet
  6. ansible的安装部署与模块使用
  7. 2022出海拉美:巴西电商市场现状及网红营销特点
  8. 如何通过fiddler来进行接口数据mock测试
  9. JVM虚拟机-----垃圾回收相关概念
  10. 5款国产ARM芯片替代ST
  11. 使用java做一个能赚钱的微信群聊机器人(2020年基于PC端协议最新可用版)
  12. 如何快速体验腾迅信鸽推送
  13. c股票交易接口的C语言编写
  14. Bug的由来,Bug为什么叫做Bug
  15. 开学不容错过的蓝牙耳机,高品质蓝牙耳机排行榜
  16. C#底层库--随机数生成器
  17. PHP左侧分类表显示,利用CSS实现wordpress侧边栏分类目录分两列显示 | 迷失的世界...
  18. Netapp磁盘聚合划分
  19. nginx报错worker_processes directive is duplicate
  20. 风暴英雄服务器无响应,win7系统下玩风暴英雄卡机的解决方法

热门文章

  1. boost::lambda::ret用法的测试程序
  2. 打印包含在 boost::exception 中的所有数据的测试程序
  3. ITK:用内核卷积图像
  4. VTK:可视化算法之CreateBFont
  5. OpenGL multiple lights多光源的实例
  6. C++Rabin Karp算法字符串快速查找(附完整源码)
  7. QT的QQmlScriptString类的使用
  8. 浅谈C++函数的参数
  9. java warning 编译_关于性能:Java编译器警告会影响编译时间吗?
  10. 美国不要求计算机背景的学校,美国哪些院校计算机专业不需要CS背景