使用 Hexo 搭建个人博客

使用 Hexo 搭建个人博客

作为一只程序猿,每个人都希望有一个自己的个人博客,博客自己写的话,那太麻烦了。幸好Hexo提供了一个快捷生成博客的方案。

注意:以下操作都在Linux系统上进行

本地构建Hexo

在构建Hexo之前,我们得先安装两个工具:

  • Git
  • Node.js

Git 安装很简单,运行如下代码

sudo apt-get install git

Node.js安装复杂稍微复杂一点,可参考Linux系统安装Nodejs

这里当都已安装完成了。

安装Hexo

安装了node就可以使用使用 npm 安装 Hexo

npm install -g hexo-cli

查看是否安装完成,可以使用如下代码:

hexo -v

创建一个本地文件夹,用来存放 hexo blog, 我这里是StaticWeb
在当前文件夹下执行

hexo init
npm install

构建完成之后大概可以看到如下的一个目录结构:

.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes

然后在Terminal中执行如下代码,就可以通过 http://localhost:4000进行访问了

hexo s/hexo server

Hexo

更换 Hexo 主题

我们发现这个主题实在是太丑了,没办法重新找一个进行更换,我这里使用的是Melody,如果想使用其他的主题到Hexo主题进行更换

进入StaticWeb将 Melody主题克隆下来

git clone -b master https://github.com/Molunerfinn/hexo-theme-melody themes/melody

并安装jadestylus renderer

npm install hexo-renderer-jade hexo-renderer-stylus

最后将StaticWeb/_config.yml中的theme改成melody

重新执行hexo s就可以看到新的主题样式了
Melody

将Hexo部署到自己服务器

这里说明一下为什么部署到自己的服务器,是因为实在是伤不起GithubCoding这些网站了,实在是运行太慢了,半天都打不开。需要准备一下如下:

  • 一台服务器(系统使用的是centOS)
  • 域名(不强求)

安装工具

进入我们自己的服务器,安装GitNginx
为什么需要这两个呢?这里简单解释一下

  • Git用来构建一个简单的代码仓库
  • Nginx用来代理自己搭建好的网站
ssh root@IP //进入自己服务器,IP为你服务器IPv4地址,回车之后输入密码即可登录
// 进入之后,安装git
yum install git-core
// 安装Nginx
yum install -y nginx
// 启动Nginx
service nginx start

安装完成并且启动之后,就可以通过自己的ip或者域名访问了
Nginx

构建Git仓库与网站存储

  • 创建网站目录
mkdir /var/www/hexo
  • 创建Git仓库
    mkdir /var/blog
    git init --bare hexo.git

使用 Git Hooks 实现自动项目部署

vim /var/blog/hexo.git/hooks/post-receive
// 进入后编辑如下
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/blog/hexo.git checkout -f

post-receive它运行在服务端而不是用户的本地机器,它在任何开发者推送代码时运行.
关于更多关于Git Hook可参考使用 Git Hooks 实现自动项目部署

  • 赋予可执行权限
chmod +x /var/blog/hexo.git/hooks/post-receive

配置Nginx

cd /etc/nginx/
vim nginx.conf
  • 编辑nginx.conf
server_name  www.readdown.com;
#root /usr/share/nginx/html;
root /var/www/hexo;
  • 保存退出后执行如下:
nginx s reload
  • 再次修改本地StaticWeb/_config.yml
url: ip或域名(http://xxx.com)
...deploy:
type: git
repo: root@xxx.com:/var/blog/hexo
branch: master
  • 最后一次运行
hexo clean
hexo g
hexo deploy

上传完成之后,就可以成功访问了,例如我的博客

添加证书

我们想将我们的网站http://变成https://,那就需要向我们的服务器添加SSL证书.大概添加步骤如下:

  1. 先打开阿里云,找到产品服务-安全-SSL证书,进入SSL证书

  2. 点击购买证书,然后进入购买页面,我们选择个人免费版,可使用一年时间
    证书购买

  3. 购买完成后需进行一个个人认证申请,等几分钟状态就会从申请中变成已签发
    证书签发

  4. 点击下载,就会出现如下,可下载ApacheTomcatNginx,我们这里下载Nginx的证书
    证书签发

5. 配置

# HTTPS server
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
}
  1. 配置完成之后会发现,如果我们访问http://不会自动转成https://,修改如下
server {
listen 80;
server_name localhost; #将localhost修改为您证书绑定的域名,例如:www.example.com。
rewrite ^(.*)$ https://$host$1 permanent; #将所有http请求通过rewrite重定向到https。
location / {
index index.html index.htm;
}
}
  1. 另外
    如果我们直接访问可能还是访问不了,因为https运行的端口是443,但是一般服务器会启动防火墙,不会自动开启443端口,所有我们需要将443端口开放
// 将443端口加入开放列表
firewall-cmd --zone=public --add-port=443/tcp --permanent
// 重新加载,不然仍然无法访问
firewall-cmd --reload
// 查询防火墙开发端口
firewall-cmd --zone=public --list-port

以上就是如何搭建一个简单的博客,并对网站添加SSL证书.


 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×