其他
小白也能看懂,30 分钟搭建个人博客!
点击上方蓝色字体,选择“置顶公众号”
优质文章,第一时间送达
正文
一. 前言
当然可以选择阿里云或者腾讯云,而我为什么选择DigitalOcean购买服务器?主要原因是便宜,只需要5美元就能购买一年期限的美国服务器,需要学生GitHub认证后会赠送代金券,不过购买服务器需要Paypal,购买地址为:
https://m.do.co/c/1d4464e8355e.
1. 极客,想拥有一个漂亮的博客,想快速了解,但不想把时间花在由于细节导致的各种问题上.
2. 只是想快速拥有一个在自己服务器上的博客的朋友.
二. 博客框架的选择
Jekyll (https://jekyllrb.com/) hugo (http://www.gohugo.org/) django (https://www.djangoproject.com/) hexo (https://hexo.io/)
选择的标准有什么呢?
美观程度 系统需求 搭建难度 可扩展性 插件提供 文档是否全面
三. Hexo介绍
Hexo 特点
1. 支持Markdown: 支持Markdown意味着你可以把经历从排版中解放出来.
2. 轻量: 无需拥有后台及数据库,专心写好你的文章
3. 一键部署: 可以通过Git或者ftp来将生成的静态页面部署到服务器或者主机空间中
4. 插件丰富: 丰富的插件可以满足你的各种需求.
Hexo的工作机制
Node.js和npm
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,为我们的Hexo提供js脚本的运行环境.而npm则是一个JavaScript的包管理工具.主流的很多语言都会有自己的包管理器(们):
PHP
Composer
Ruby
gem
Python
pip
easy_install
Javascript
bower
npm
yarn
四. 安装所需环境
安装Node.js
安装git
Git-Downloads(git-scm.com/downloads)下载 64-bit Git for Windows Portable ,双击选择依照你个人喜好指定的目录(注意介于权限问题,避免在c:/program files下),我安装在c:/some/git下 右键开始(windows 10)-搜索,输入环境变量,编辑系统环境变量.
设置本地用户的信息,引号内随意填:
git config --global user.name "illgo"
git config --global user.email "i@illgo.cn"
在这里解释Yarn(npm相同)全局安装和本地安装的区别:
我们安装hexo需要作为一个工具在命令行下可以直接运行,所以采用全局安装;而像hexo依赖的插件则可以在hexo项目目录下本地安装:
yarn global add hexo
Hexo配置文件:myblog/_config.yml 主题配置: myblog/themes/next/_config.yml
创建站点目录
hexo init
安装主题NexT
git clone https://github.com/iissnan/hexo-theme-next themes/next
启用主题
长成这样:
theme: next
hexo s --debug
Hexo基本配置
NexT主题配置
六.部署
部署到自己的服务器上 网上流行的GitHub Pages
部署到服务器
hexo生成静态页面->git提交到git服务器->git服务器通过Hook运行脚本,在www目录下clone Git仓库->呈现页面
为SSH连接创建密钥对
1. 创建SSH密钥对:
ssh-keygen -t rsa -C "i@illgo.cn"
id_rsa 私钥 id_rsa.pub 公钥
2. 在服务器中添加公钥
在服务器上安装Web服务器
安装Apache
yum -y install httpd
systemctl start httpd
然后访问该服务器的80端口即可看到Apache的测试页面:
在服务器上创建Git服务器
1. 服务器端安装Git
yum install -y git
2. 创建Git用户
useradd git
passwd git
3. 创建空仓库
mkdir -p /home/git/repos/myblog.git
git init --bare /home/git/repos/myblog.git
chown -R git:git /home/git/repos/myblog.git/
5. 在web目录下Clone
git clone /home/git/repos/myblog.git /var/www/html
chown -R git:git /var/www/html/
4. 设置Git Hook
我们需要一个post-receivew如下:
#!/bin/bash
#判断是不是远端仓库
IS_BARE=$(git rev-parse --is-bare-repository)
if [ -z "$IS_BARE" ]; then
echo >&2 "fatal: post-receive: IS_NOT_BARE"
exit 1
fi
unset GIT_DIR
DeployPath="/var/www/html/"
echo "==============================================="
cd $DeployPath
echo "deploying the myblog web"
#git stash
#git pull origin master
git fetch --all
git reset --hard origin/master
time=`date`
echo "web server pull at webserver at time: $time."
echo "================================================"
配置git部署
yarn add hexo-deployer-git
- type: git
repo: git@159.89.144.28:/home/repo/blog.git
测试
hexo g --deploy
七. SEO
问题记录
mote: error: cannot run hooks/post-receive: No such file or directory
当直接运行post-receive的时候发现错误是这样的:
-bash: /home/git/repos/myblog.git/hooks/post-receive: /bin/bash^M: bad interpreter: No such file or directory