使用 Debian 从 0 开始搭建 hexo 博客
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
Hexo 产生的静态文件只要放到任何支持 html 的空间或者服务器均可访问。主要的选择方案有以下两种
- GitHub Pages
- 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 博客相关推荐
- 从 0 开始搭建 Hexo 博客
欢迎访问我的 hexo 博客 :https://guoshizhan.github.io 前言:本教程使用的是 Windows 操作系统,所使用的编辑软件是 notepad++,不要使用记事本或者 E ...
- 搭建hexo博客历程二- Gitee版 (主要 解决404和样式丢失)
前期的GitHub版搭建hexo博客 前期的node .hexo等等都已经配置完成,只需要在Gitee上建库,以及修改一些配置.继续依葫芦画瓢,在Gitee上画出来.例如 https://gitee. ...
- 阿里云Serverless 极速搭建Hexo博客
阿里云Serverless 极速搭建Hexo博客 阿里云Serverless 极速搭建Hexo博客 地址 开通函数计算服务 安装Serverless Devs命令行工具 安装Node.js环境. 解压 ...
- 腾讯云搭建hexo博客
title: 腾讯云搭建hexo博客 tags: hexo,腾讯云 文章目录 title: 腾讯云搭建hexo博客 tags: hexo,腾讯云 @[toc] 1. 腾讯云 学生认证购买 重置密码和网 ...
- 史上最详细“截图”搭建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 ...
- python公众号留言功能_搭建hexo博客给公众号制作留言功能
大家都知道,18年3月份后注册的公众号都不给留言功能了,作为主要以技术文章为主的公众号,没有留言功能真是不方便.周末这两天我就一直在折腾这个留言功能,借助博客的留言功能,放在阅读原文里.昨天晚上终于折 ...
- 搭建hexo博客给公众号制作留言功能
此文首发于公众号 「Python知识圈」,欢迎直接去公众号观看. 阅读文本大概需要 5 分钟. 大家都知道,今年注册的公号都不给留言功能了,作为主要以技术文章为主的公众号,没有留言功能真是不方便.上周 ...
- centos7搭建hexo博客步骤
安装插件 1.nodejs wget https://nodejs.org/dist/v14.17.4/node-v14.17.4-linux-x64.tar.xz tar -xvf node-v14 ...
- Windows下使用GitHub Pages搭建hexo博客详细教程以及Next主题超全配置
根据下面的教程搭建的博客见这里 前言 马上要进入研究生了,不能再过浑浑噩噩的日子了,搭建一个小网站,用于记录自己所学的东西.其实,之前在腾讯云1元乞丐版上也搭建过博客,但是呢,只用来扯淡了.这次使用 ...
最新文章
- filter java web_java web filter 之一 基础实现
- python中随机输入数字再排序
- 传京东将收购格力电器5%股权 官方回应:消息不实
- 【python】字典的嵌套
- mnist手写数字辨识实战——改进的LeNet
- ansible的安装部署与模块使用
- 2022出海拉美:巴西电商市场现状及网红营销特点
- 如何通过fiddler来进行接口数据mock测试
- JVM虚拟机-----垃圾回收相关概念
- 5款国产ARM芯片替代ST
- 使用java做一个能赚钱的微信群聊机器人(2020年基于PC端协议最新可用版)
- 如何快速体验腾迅信鸽推送
- c股票交易接口的C语言编写
- Bug的由来,Bug为什么叫做Bug
- 开学不容错过的蓝牙耳机,高品质蓝牙耳机排行榜
- C#底层库--随机数生成器
- PHP左侧分类表显示,利用CSS实现wordpress侧边栏分类目录分两列显示 | 迷失的世界...
- Netapp磁盘聚合划分
- nginx报错worker_processes directive is duplicate
- 风暴英雄服务器无响应,win7系统下玩风暴英雄卡机的解决方法
热门文章
- boost::lambda::ret用法的测试程序
- 打印包含在 boost::exception 中的所有数据的测试程序
- ITK:用内核卷积图像
- VTK:可视化算法之CreateBFont
- OpenGL multiple lights多光源的实例
- C++Rabin Karp算法字符串快速查找(附完整源码)
- QT的QQmlScriptString类的使用
- 浅谈C++函数的参数
- java warning 编译_关于性能:Java编译器警告会影响编译时间吗?
- 美国不要求计算机背景的学校,美国哪些院校计算机专业不需要CS背景