折腾博客记 - 搭建博客
我的系统是 MacOS 10.15,搭建过程也都使用苹果系统进行的。
使用的技术
- 博客搭建使用的技术
服务器
Oracle 云服务服务器管理
宝塔面板Web服务器
Nginx静态页面
Hexo远程部署
Hexo deploy配合Git Hooks部署
大致是这么一个情况,如果单纯想简单搭个小博客的话完全可以选择一些静态网页托管平台,例如Netlify
之类的免费额度作为网站前期过渡就很舒服了。我这边呢,因为前阵子申请了
Oracle
所以不想闲置所以才用的这个相对复杂的搭建方式。而且Netlify
还有支持Hexo的CMS简直不要太香哦。
博客搭建顺序
博客搭建的顺序分为这么几步进行。
- 本地搭建
Hexo
- 通过
宝塔面板
配置VPS环境
- 添加
Git用户
,配置Git Hooks
Hexo deploy
远程部署
这里边比较麻烦的是VPS环境配置
和Git配置
。容易出点小问题。
1.本地搭建Hexo
本地需要做的工作有下面几个。
- 安装
Node.js
- 安装
Hexo
- 初始化
Hexo
安装 Node.js
这边有个小坑需要注意。mac本身是有安装Node的,但是安装新版本的Node之后,系统依启用的是旧版本的Node。这是因为mac本身是通过nvm管理Node.js版本的,所以导致安装最新版的Node.js都安装到别的虚拟环境里面了。所以更新版本之前优先查看电脑是否存在Node的虚拟环境,以及现在活跃的是哪个虚拟环境。(因为之前没太解除Node.js和nvm所以不太了解。)
使用例如nvm use system
来激活对应环境。
然后使用nvm install <version>
来安装指定版本的Node.js。
安装 Hexo
Node.js搞定了之后安装Hexo就很简单了。
然后使用以下命令安装Hexo。
1 |
|
初始化 Hexo
初始化直接使用hexo init '文件夹名'
,来初始化Hexo,会在当前目录下自动创建相应初始文件。我这边博客的文件名是用的Blog
,所以后面的命令都用Blog
来代替文件夹名。
初始化代码运行完之后可以使用hexo s
启动服务,进到http://localhost:4000/
来验证自己本地Hexo搭建是否正确,如果看到的是默认的Hexo页面就表明OK了。
2.配置VPS环境
这边需要做的是以下这些。
- 安装
宝塔面板
- 安装
Nginx
- 安装
Node.js管理器
- 安装
Git
这边主要以安装服务为主,具体设置放到后面远程部署那边统一说明。
在做其他事情之前,最重要的是确保本地远程访问服务器是连通的。
ssh root@vps_ip
命令来验证是否能正常ssh访问服务器。
这边如果是被拒绝的,则需要去看一下公钥配置是否正确。
我之前搭建的时候是有遇到公钥配置没有问题,也有正确添加到authorized_keys
中但依旧使用密钥访问被拒绝。ssh显示错误Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
。
这个后面的解决方法是需要在服务器的sshd_config
中修改一个字段,使得允许密码访问。
1 |
|
后面有想着排查这个问题,但是为什么单独使用密钥访问被拒绝这个问题没找到问题源头。
安装宝塔
宝塔面板是一个支持Linux系统的管理面板,可以一键方便安装服务器端各种服务以及修改服务配置。
这是宝塔面板的网站,安装方法根据官网为主。
1 |
|
这个命令是在Centos
中安装的命令,其余的请参考宝塔面板官方网站。
安装 Nginx
博客搭建使用Nginx作为Web服务器
。
安装方法呢,在宝塔面板中一键安装。
安装 Node.js管理器
同样使用宝塔面板安装。在宝塔面板左侧有个软件商店
中搜索Node.js管理器
后安装即可。
安装完之后默认是还没有添加到系统的环境变量的。如果想要在终端中使用则需要添加环境变量。
1 |
|
安装 Git
Git在宝塔面板是收费的,所以直接使用终端命令安装。
1 |
|
3.添加Git用户,配置Git Hooks
这边需要的做的是以下这几件事。
- 配置 Git 环境变量
- 添加 Git 用户
- 初始化 Git 仓库
- 配置 Git Hooks
配置 Git 环境变量
使用yum
安装完Git
之后,配置完环境变量使其生效后可以使用git --version
来检验自己安装是否正确。
添加环境变量的方法如下。
1 |
|
添加 Git 用户
添加Git
用户的目的很单纯,就是为了确保后续部署文件只有对应文件夹的权限,便于管理。
1 |
|
因为放着git
用户的ssh访问权限很不安全,所以需要关闭git
用户的shell
权限。
1 |
|
这样git
用户就可以正常通过ssh
使用git
但是无法登录shell。
初始化 Git 仓库
Git
主要涉及这么几个文件夹。
一个是Git仓库
,另一个是网站目录
还有一个是.ssh
。所以这边主要围绕这么几个东西进行。
具体过程如下。
1 |
|
创建完上面几个目录之后,要确保它们的用户组是之前添加的Git用户
。如果当前不是则需要使用chown -R git.git '文件夹名'
来更改用户组权限,来保证blog.git,.ssh,Blog文件夹的用户组权限为git.git。
配置 Git Hooks
配置Git Hooks
这边主要就是需要创建post-receive
文件。
首先是创建post-receive
文件。
1 |
|
然后将下面配置内容复制到文件内。
1 |
|
最后给post-receive
文件加上可执行权限。
1 |
|
这边为什么使用临时缓存目录是因为,可以避免.git
之类的整个仓库历史记录暴露在Web服务中。
4.Hexo deploy远程部署
这边需要做的是这么几个事情。
- 准备域名
- 配置 Nginx
- 配置 Hexo deploy
准备域名
准备域名这边因为购买渠道各不相同,所以博客想要上线需要自行准备一下域名。阿里云,Godaddy之类的都是可以的。然后解析域名到对应服务器IP地址,基本就可以用了。
配置 Nginx
已经万事俱备了,所以在宝塔面板那边配置一下博客的地址和目录。
首先在菜单网站这边添加需要静态依赖的网站信息,主要需要填写的是域名管理
和网站目录
。域名这边呢就把自己准备好的域名填写上,网站目录的话就是自己创建的在www文件夹下面的博客目录,正确填写就可以了。
还有 Nginx 配置中主要修改这两个字段就行。
server_name
// 填写自己的域名root
// 填写网站的根目录
宝塔面板后面SSL证书配置之类的其余功能放到别的文章去写,这一篇的主旨还是以最少的操作把整个网站运行起来。
配置 Hexo deploy
已经来到最后一步,配置本地的部署信息就可以一键部署然后让博客自行在服务器中跑起来了。
找到自己本地搭建的Hexo文件夹,找_config.yml
文件。
在最后填写deploy信息。
1 |
|
repo
这边也就是填写ssh信息,大概形式是这样的ssh://用户@服务器IP地址:端口/git仓库目录.git
。
所有东西都配置好了之后,本地终端运行
1 |
|
就能一键远程部署了!!
完美撒花!!(写个破文章累死了,- -!!)