在阿里云服务器中应该怎么建立Hexo个人博客?

1. 博客的架构

先搞明白Hexo博客从搭建到自动发布的架构,才能更好的理解我们每一步进行的操作。
不然只跟着步骤过了一遍,却不知道为什么这么做。

首先看这张架构图:


在阿里云服务器中应该怎么建立Hexo个人博客?

整个流程就是本地将 *.md 渲染成静态文件,然后Git推送到服务器的repository,服务器再通过 git-hooks 同步网站根目录。

2. 整个搭建流程

前提条件:阿里云服务器

第一部分: 服务器环境搭建,包括安装 Git 、Nginx配置 、创建 git 用户 。

第二部分: 本地Hexo初始化, 包括安装 NodeJS 、hexo-cli, 生成本地静态网站

第三部分: 使用Git自动化部署发布博客

3. 服务器环境搭建

3-1.安装Git和NodeJS (CentOS 环境)


  
  1. yum install git
  2. #安装NodeJS
  3. curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -

NodeJS 安装可以参考: Linux安装NodeJS

3-2. 创建git用户


  
  1. adduser git
  2. chmod 740 /etc/sudoers
  3. vim /etc/sudoers

找到以下内容


  
  1. ## Allow root to run any commands anywhere
  2. root ALL=( ALL) ALL

在下面添加一行

git ALL=(ALL) ALL

  

保存退出后改回权限

chmod 400 /etc/sudoers

  

随后设置Git用户的密码,


  
  1. #需要root权限
  2. sudo passwd git

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


  
  1. su git
  2. mkdir ~/.ssh
  3. vim ~ /.ssh/authorized_keys
  4. #然后将电脑中执行 cat ~ /.ssh/id_rsa.pub | pbcopy ,将公钥复制粘贴到authorized_keys
  5. chmod 600 ~ /.ssh/authorzied_keys
  6. chmod 700 ~/.ssh

然后就可以执行ssh 命令测试是否可以免密登录

ssh -v git@SERVER

  

至此,Git用户添加完成

3-3. Nginx安装和配置

我是用的是lnmp 一键安装包,nginx安装教程一大堆,就不再叙述。主要看nginx配置。
找到nginx的配置文件,修改配置如下:


  
  1. server
  2. {
  3. listen 80;
  4. #listen [::]:80;
  5. server_name www.seekbetter.me seekbetter.me;
  6. index index.html index.htm index.php default.html default.htm default.php;
  7. #这里要改成网站的根目录
  8. root /path/to/www;
  9. include other.conf;
  10. #error_page 404 /404.html;
  11. location ~ .*\.(ico|gif|jpg|jpeg|png|bmp|swf)$
  12. {
  13. access_log off;
  14. expires 1d;
  15. }
  16. location ~ .*\.(js|css|txt|xml)?$
  17. {
  18. access_log off;
  19. expires 12h;
  20. }
  21. location / {
  22. try_files $uri $uri/ = 404;
  23. }
  24. access_log /home/wwwlogs/blog.log access;
  25. }

4. 本地Hexo程序

4-1:初始化Hexo博客

首先要安装 hexo-cli,安装hexo-cli 需要 root 权限,使用 sudo 运行

sudo npm install -g hexo-cli

  

然后初始化Hexo程序


  
  1. cd ~ /Documents/code
  2. hexo init blog

等执行成功以后安装两个插件, hexo-deployer-git 和 hexo-server ,这俩插件的作用分别是使用Git自动部署,和本地简单的服务器。

hexo-deployer-git帮助文档
hexo-server帮助文档


  
  1. cd blog
  2. npm install hexo-deployer-git --save
  3. npm install hero- server

4-2. 生成自己的第一篇文章 hello world !

使用 hexo new <文章名称> 来新建文章,该命令会成成一个 .md文件放置在 sources/_posts文件夹。


  
  1. hexo new "hello Hexo"
  2. vim sources /_posts/hello-hexo.md

编辑完毕以后, 使用hexo g将 .md文件渲染成静态文件,然后启动hexo-server


  
  1. hexo g
  2. hexo server

现在便可以打开浏览器访问 http://localhost:4000 来查看我们的博客了!

5. 自动化部署

5-1:服务器上建立git裸库

创建一个裸仓库,裸仓库就是只保存git信息的Repository, 首先切换到git用户确保git用户拥有仓库所有权
一定要加 --bare,这样才是一个裸库。


  
  1. su git
  2. cd ~
  3. git init --bare blog.git

5-2. 使用 git-hooks 同步网站根目录

在这里我们使用的是 post-receive这个钩子,当git有收发的时候就会调用这个钩子。 在 ~/blog.git 裸库的 hooks文件夹中,
新建post-receive文件。


  
  1. vim ~ /blog.git/hooks/post-receive
  2. #! /bin/sh
  3. git --work-tree= /path/to/www --git-dir=~/blog.git checkout -f

保存后,要赋予这个文件可执行权限

chmod +x post-receive

  

5-3. 配置_config.yml,完成自动化部署

然后打开 _config.yml, 找到 deploy


  
  1. deploy:
  2. type: git
  3. repo: git @SERVER:/home/git/blog.git //<repository url>
  4. branch: master //这里填写分支 [branch]
  5. message: 提交的信息 //自定义提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }})

保存后,尝试将我们刚才写的”hello hexo”部署到服务器


  
  1. hexo clean
  2. hexo generate --deploy

访问服务器地址,就可以看到我们写的文章”Hello hexo”,以后写文章只需要:


  
  1. hexo new "Blog article name"
  2. ···写文章
  3. hexo clean && hexo generate --deploy

博客就更新咯!~

面对国内众多的云平台,个人和企业该如何选择呢?可以参考这篇文档:【云服务器推荐】2021年腾讯云、阿里云、华为云服务器价格和配置评测

上一篇:next5主题自定义摘要


下一篇:Hexo搭建个人博客