前言
这一篇关于如何在macOS搭建博客的博文和上一篇在win10系统搭建博客的文章大同小异,主要我自己两个系统都使用,便有了两篇搭建博文,所以本篇文章的内容会少一点,关于Github部分会不写,会增加如何部署在云服务器,所以我们开始吧。
开始
这篇博文主要分为两个部分:
第一部分:Node.js、Git、Hexo的安装
第二部分:将博客部署到云服务器
Node.js、Git、Hexo的安装
Node.js和Git的本地安装与检查
在macOS系统下,
Node.js
和Git
的安装基本上和在wWindows系统下基本一致,到官网下载最新版即可,因为网站会根据系统直接提供适配系统的安装包。下载和安装非常简单,下载完打开安装,一直下一步即可,在macOS系统下则不需要像Windows系统配置环境变量。
补充!!!!下面方法请在上述
node.js
的安装使用出错时使用
关于Node.js
的安装,经过多次尝试发现这种直接到官网下载安装包安装的方式虽然方便,但后面使用npm
命令安装hexo
时会报错,报错的原因主要是没有权限将hexo写入.npm-global
里面,就算我使用sudo
还是不行。
不过通过查询npm
官网上的教程发现,官网不推荐installer
直接安装的方法,如果使用该方法安装的朋友出现报错,请先卸载node
和npm
,然后按照以下方法安装:nvm
的安装和确认是否成功,打开macOS的终端
输入以下命令:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
#安装完成后输入下面命令检查:
command -v nvm
#会看到反馈:nvm,没看到请关掉 终端 ,然后重启电脑在重新输入命令- 用
nvm
安装node.js
,在终端
输入以下命令:nvm install node
# "node" is an alias for the latest version
检查
node.js
和Git
是否安装成功,在终端
输入以下命令:node -v
git --version
Hexo的安装
打开
终端
输入以下命令:mkdir hexoblog
# 在个人目录下创建hexoblog文件夹,路径为/Users/你的用户名/hexoblog
npm install -g hexo-cli
# 安装Hexo
hexo -v
# 查看Hexo版本号(判断是否安装成功)如果觉得安装慢,想安装快一点,请查看从零开始的个人博客搭建(Win10篇)中npm相关的注意事项,这里就不讲述了。
初始化Hexo,在步骤1的基础下,在
终端
输入以下命令:hexo init
# 在当前文件夹初始化hexo
# 出现 Start blogging with Hexo!代表成功查看Hexo博客
在步骤2的基础下,接着上述终端
并输入以下命令:hexo clean
# 清空缓存
hexo generate
hexo g #简写
# 重新编译
hexo server
hexo s #简写
# 打开本地访问在终端中出现
Hexo is running at http://localhost:4000 . Press Ctrl+C to stop
则代表本地博客已经可以在浏览器输入http://localhost:4000
按回车键后看到下图所示的界面。
恭喜你,本地博客搭建完成了!关于主题
- 我自己使用的主题是
Butterfly
,你可以到主题的Github地址下载,将下载好的hexo-theme-butterfly-dev.zip
文件解压后重命名为butterfly
并放入hexoblog\themes
中即可,关于此主题的更多内容请参考主题文档。 - 当然,你也可以在
hexoblog
文件夹中打开终端
输入以下命令来安装Butterfly
这个主题:git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
# 其他主题基本都可以使用相同的方法安装 - 主题选择完请按照主题的官方文档进行配置。
- 我自己使用的主题是
将博客部署到云服务器
本教程以腾讯云的云服务器为例,毕竟最近白嫖了1个月的腾讯云轻量应用服务器。
服务器的购买或白嫖?
首先肯定是要有一个云服务器,如果没有也可以点击上面的链接去白嫖一个,虽然只能拥有短短的15天或者一个月,个人新用户可以选择15天的CVM,老用户的话可以选择轻量应用服务器。
如果是CVM,参考如下:
如果是轻量应用服务器,参考如下:
Git服务器的配置
当你拥有一个云服务器后,就可以开始操作了,你购买完成后会直接跳转到相应的页面,待实例创建完成,你就能看到公网IP和实例的登录密码,有这两个就可以登录服务器了。
登录服务器,打开你熟悉的终端软件,例如我这里使用的是SecureCRT
,输入上面所说的IP和登录用户名root
以及密码就能看到与下图相似的界面。安装Git
先检查服务器是否安装了Git,在终端输入git --version
命令查看是否存在Git,如果如下图所示not found
,则是没有安装,需要你去安装。
安装Git,输入以下的命令,然后回车等待一会即可。yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y
yum install -y git出现下图所示则代表安装成功。
创建Git用户并且配置Git仓库
useradd git
# 创建用户
passwd git
# 设置密码
su git
# 切换用户
cd /home/git/
# 进入git用户的家目录
mkdir -p projects/blog
# 项目存在的真实目录(当然你可以创建在其他地方)
mkdir repos && cd repos
# 创建文件夹
git init --bare blog.git
# 创建一个裸露的仓库cd blog.git/hooks
# 进入hooks文件夹
vi post-receive
# 创建并编辑post-receive文件
回车后输入下面的代码后然后按住键盘的ESC
键,输入wq
然后按回车键即可保存退出。# 创建 hook 钩子函数
#!/bin/sh
git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f
接着为刚才创建并编辑好的文件添加可执行的权限,输入如下的命令:chmod +x post-receive
# 为刚才的文件添加可执行的权限
exit
# 退出到 root 登录
chown -R git:git /home/git/repos/blog.git
# 添加权限测试能否克隆仓库
在自己的电脑随意找个位置新建一个文件夹hexoblog
,然后打开终端命令工具,如果你是macOS可以直接打开系统的终端.app
,如果你是Windows系统,可以使用bash
(如何安装使用请看从零开始的个人博客搭建(Win10篇)),然后输入以下命令,测试是否能将仓库克隆下来:git clone git@server_ip:/home/git/repos/blog.git
# server_ip请换成你的服务器IP- 发现目前需要密码就能克隆仓库。
建立免密码登录(通过密钥登陆)
登录服务器,输入以下命令:su git
# a切换git用户
cd ~
# 切换到git用户的家目录
mkdir .ssh
# 创建.ssh目录
chmod 700 .ssh/
# 赋予.ssh文件夹权限
cd .ssh
# 进入.ssh目录
vim authorized_keys
# 创建并编辑一个名为authorized_keys的文件,并写入公钥(id_rsa.pub)内容
# 没有装vim的请把vim改成vi
chmod 600 authorized_keys
# 赋予authorized_keys文件权限如何获得公钥请查看“在centos7.6下配置SSH的公私钥key登录”中的生成公私钥(以终端软件 SecureCRT 8.3 为例)部分。
测试是否能够成功连接,在本地的
hexoblog
打开终端
软件,输入以下命令:ssh git@server_ip
# server_ip请换成你的服务器IP如下图,能够成功登陆则代表连接成功。
禁止git用户shell登陆权限,只用于git命令的登录(出于安全考虑),继续root登录服务器,输入以下命令:
# 如果接着步骤6,请输入下面的命令切换回root用户,如果是重新登录服务器直接看第二条命令
su root 或 exit
# su root是切换root用户,exit是退出当前用户
which git-shell
# 查看git-shell的路径
vim /etc/shells
# 编辑/etc/shells文件并且添加上个命令得到的路径
vim /etc/passwd
# 修改passwd文件中git用户的权限在shells文件内添加
/usr/bin/git-shell
把passwd文件中的
git:x:1000:1000::/home/git:/bin/bash
修改为git:x:1000:1000::/home/git:/bin/git-shell
配置 Nginx
该步骤是为了开启服务器的80端口用来显示博客网站,不然一直在服务器后台挂着 hexo s
略显奇葩,虽然也有可行的方法。
安装
Nginx
登录服务器,打开你熟悉的终端软件,例如我这里使用的是SecureCRT
,然后root用户登陆服务器,输入以下命令:yum install -y yum-utils
# 安装依赖
yum install -y nginx
# 安装nginx
nginx -v
# 查询nginx版本号出现如下图所示则代表安装成功:
配置
Nginx
输入以下命令:cd /etc/Nginx
# 切换到nginx配置文件所在的目录
vi nginx.conf
# 编辑nginx配置文件将
user nginx
改为user root
,如下图所示:找到root解析路径并修改为
/home/git/projects/blog/
,如下图所示:待上述内容修改完后按住键盘的
ESC
键,再按住:
,然后输入wq
保存修改好了的文件,并输入以下命令:systemctl start nginx
# 重启nginx服务此时打开浏览器输入服务器IP地址并访问,就会得到一个404页面提示,因为我们还未将博客部署到云服务器,接下来将本地博客部署到云服务器。
将博客发布到云服务器
- 打开博客根目录(也就是之前创建的
hexoblog
文件夹)下的_config.yml
文件,找到deploy
配置项,修改如下:deploy:
type:
# 填写用户名,例如我们之前创建的 git
repo:
git: git@server_ip:/home/git/hexoblog.git
# 更换过ssh端口号的请用下面这种写法
git: ssh://git@server_ip:端口号/home/git/hexoblog.git
# Git仓库路径
branch: master
# 分支,默认填写master - 上传本地博客到云服务器
完成上述所有步骤后,在博客根目录下(也就是之前创建的hexoblog
文件夹)打开终端
,并输入一下命令:hexo clean
hexo generate
hexo deploy - 如无意外,浏览器输入
云服务器IP
即可访问你的博客了。
关于域名绑定
- 请参考“关于域名的一些的知识与小技巧”中的为博客添加解析记录部分。
关于配置HTTPS(也就是SSL证书)
- 请自行百度,也可参照“关于域名的一些的知识与小技巧”中的更新补充配置HTTPS(申请SSL证书)部分。
最后
- 关于云服务器部署博客的内容就结束了,在macOS部署的内容和在windows上基本一致,就不值一提了,祝大家部署成功,完美搭建博客!再见👋。