使用 hexo 搭建一个简约的个人博客并部署到云服务器上。
https://tea.nim-cn.com/archives/
环境简介
我使用的是 ubuntu
系统,使用的是阿里云的服务器,域名是已经备案的 Nim 中文社区
官网的子域名。
远程连接使用的 xshell
以及 vscode ssh
,文件传输使用的是 xftp
。
Markdwon 写作工具 vscode
以及 typora
。
博客首页
安装
由于 hexo
是基于 nodejs
的框架,首先,我们需要安装 nodejs
以及包管理器 npm
。
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get npm
接着,我们就可以使用 npm
安装 hexo
。
npm install -g hexo
确认安装无误之后,我们新建一个 blog
文件夹(随意命名),然后切换到 blog
文件夹下面。然后使用 hexo init
初始化文件夹。
mkdir blog
cd blog
hexo init
接下来,我们使用 hexo g
来生成文件,hexo s
来运行服务。
hexo g # 生成文件
hexo s # 运行服务
hexo 的默认端口是 4000
,我们在浏览器中输入云服务器的 ip 地址加上端口号,就可以预览博客了。
ip地址:4000
我们可以看到,系统默认的主题,以及默认的博客。默认的主题,很可能不满足我们的使用需求。这时候,我们可以下载第三方主题。我下载的是 fexo
。
我们切换到 blog\themes
文件中,并执行命令
git clone git@github.com:forsigner/fexo.git fexo
,确保自己已经安装了 git
。
cd themes
git clone git@github.com:forsigner/fexo.git fexo
这时候,我们需要修改 blog/_config.yml
,找到 theme
这个属性,修改往 theme: fexo
,需要注意需要使用英文字符冒号,以及冒号与主题之间要有一个空格。
theme: fexo
这时候,我们执行 hexo g
与 hexo s
,并访问端口,可以发现主题已经变成了 fexo
的样式。
如果,我们需要添加博客,可以通过 xftp
直接将文章推拽到 blog/source/_posts
这一个文件中,再重新通过 hexo g
生成 html
文件。
样式优化
我们可以调整 blog/themes/fexo/_config.yml
中的配置来满足我们的使用需求。
我主要是删除了一些我不需要的设置。
为了 seo 优化,可以更改关键字等信息
# Site
title: Nim 早茶
subtitle: Nim 语言博客
description: Nim 编程的知识点
keywords: nim ,nim-lang, nim中文, nim中文社区, nim早茶, 编程语言, nim编程语言, 编程, 极客, Python
author: Nim 中文社区
language: zh-CN
timezone: ''
接下来,我们使用阿里云提供的DNS 解析
,将域名绑定到我们的服务器上。由于阿里云默认不提供 4000
端口,我们可以使用 nginx
反向代理。
# 安装 nginx
sudo apt-get install nginx
接下来在 /etc/nginx/sites-available/
文件夹下面创建一个 域名
的快捷服务,比如说我的域名是 tea.nim-cn.com
,我创建的快捷服务就是 tea.nim-cn.com
。
编辑这个文件,写入以下内容,注意 server_name 需要改成你的域名。
server { server_name tea.nim-cn.com; autoindex off;
location / { proxy_pass http://localhost:4000; proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; }
}
接下来执行以下命令,凡是出现 tea.nim-cn.com
的字样都需要改成你的域名。
ln -s /etc/nginx/sites-available/tea.nim-cn.com
/etc/nginx/sites-enabled/tea.nim-cn.com
接下来执行 sudo nginx -s reload
,反向代理就配置完成了。现在我们可以在浏览器中直接输入域名来访问我们的博客。
最后,为了使得我们的博客在我们退出 ssh
连接之后仍然可以访问,我们可以使用 hexo s &
使得 hexo
在后台运行。
hexo s &
如果要关闭后台进程
kill -s 9 ps -e|grep hexo|awk '{print $1}'
我的个人博客主页,点击阅读原文,访问博客。