本文说明:
本文是使用Hexo搭建个人博客系列的第二篇,主要包括
- 本地安装hexo
- 服务器配置
- 把个人博客部署到服务器
关于购买VPS和注册域名,解析域名到IP请看:Hexo搭建个人博客(一)
接下来让我们一步步把博客给搭建起来,跟着这篇博客做,最终就可以把博客部署到服务器上,并且运行起来~
本地环境配置
安装依赖环境
安装Hexo需要先安装node.js和git
- 下载Node.js : Node.js下载地址
- 下载Git: Git下载地址
安装Hexo
只需要一行命令:
$ npm install hexo-cli -g
例如我的博客目录是 /MyBlog
通过命令
cd /MyBlog
切换到博客目录
然后在博客目录下初始化hexo博客,blog为博客名,可随意更改
hexo init blog
进入博客目录并安装插件依赖
cd blog
npm install
最后执行命令
hexo g
hexo s
顺利的话,应该能看到终端打印出地址:http://localhost:4000/
点击地址打开浏览器,应该能看到Hexo默认主题的界面了~当然,我的主题已经换了,所以打开是这样的:
安装部署依赖环境
部署Hexo使用
hexo deploy
命令即可,但是在这之前,需要先安装依赖环境server和deploy-git
在终端输入:
$ npm install hexo-server --save #
$ npm install hexo-deployer-git --save
至此,本地环境就搭建好了,除了这个,我们还需要搭建服务器的环境,所以接下来就是服务器的配置。
服务器配置
安装Git和NodeJS
只需要两行命令
$ yum install git # 安装git
curl --silent --location https://rpm.nodesource.com/setup_5.x | bash - # 安装NodeJS
创建Git用户
为了能让Hexo直接部署到VPS上,需要在服务器新建用户git
- 步骤:
adduser git # 添加git用户
sudo passwd git # 给git用户设置密码
chmod /etc/sudoers
vim /etc/sudoers
然后找到这一行
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
并添加
接下来我们需要把电脑的公钥配置到服务器,这样才能向服务器提交代码
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
#然后在本地执行 cat ~/.ssh/id_rsa.pub | pbcopy ,将公钥复制粘贴到authorized_keys
chmod ~/.ssh/authorzied_keys
chmod ~/.ssh
OK,到这里,我们就把服务器git用户给配置完了,可以通过命令
来测试一下,是不是可以免密码登陆到服务器,如果可以,那就说明没问题了。
安装和配置Nginx
安装Nginx
由于我的vps上运行的是CentOS 6 的系统,直接安装Nginx会报错,解决方法请参考这篇博客:CentOS 6 安装Nginx
CentOS 7 可以直接执行命令:
$ sudo yum install epel-release
$ sudo yum install nginx
然后再启动Nginx:
sudo systemctl start nginx
CentOS 6 启动Nginx的命令应该是:
/etc/init.d/nginx start
这个时候在浏览器输入服务器ip地址或者域名,就能看到Nginx欢迎页。
配置Nginx
- 在 /etc/nginx/conf.d/ 创建虚拟主机配置文件 blog.conf
加入以下内容:
- server_name: 改成你的服务器名字,或者域名
- root: 改成你的博客根目录
server
{
listen ;
#listen [::]:80;
server_name bluelzy.com www.bluelzy.com;
index index.html index.htm index.php default.html default.htm default.php;
#这里要改成网站的根目录
root /var/www/hexo;
include other.conf;
}
然后再重启一下Nginx,即可
service nginx restart
创建Git仓库
既然本地环境配好了,服务器所需要的环境也配好了,那么现在就需要在服务器建一个仓库,用来管理博客的代码,这一块比较重要,关乎到能不能成功部署博客。
其实就是两步:
- 创建仓库
- 设置git hook
创建仓库
执行以下命令:
$ cd ~
$ mkdir blog.git && cd blog.git
$ git init --bare
解释一下这一行:
git init --bare
意思是初始化一个裸仓库,创建一个裸仓库,并且这个仓库是可以被正常 clone 和 push 更新的, 裸仓库不包含工作区,所以并不会存在在裸仓库上直接提交变更的情况。
设置git hook
我们使用 post-receive这个钩子.在 ~/blog.git 裸库的 hooks文件夹中,
新建post-receive文件。
vim ~/blog.git/hooks/post-receive
在文件中加入:
#!/bin/sh
git --work-tree=/var/www/hexo --git-dir=~/blog.git checkout -f
注意: –work-tree=/var/www/hexo 要改成你的博客根目录,也就是上面Nginx配置文件中的root
保存退出(wq)
然后再赋予这个文件运行的权限
chmod +x post-receive
OK,到这一步,服务器的配置也已经全部完成了。
恭喜你,如果能按着博客一步步看到这里,并且一切正常,那么你离成功搭建一个博客,还差最后一步….
本地配置_config.yml
打开Hexo站点目录下的_config.yml文件,找到 deploy关键字
deploy:
type: git
repo: [email protected]:/home/git/blog.git // 仓库地址
branch: master
message: 提交的信息
把SERVER改成你的服务器地址,然后保存文件,大功告成!
测试
我们使用
hexo clean
hexo g
hexo d
把Hexo从本地部署到服务器上,执行完之后,在浏览器访问你的服务器地址,应该就能看到博客首页了。
以后写好文章,再执行上面这三句命令,就可以实现自动化部署了,真是人生一大乐事(捂嘴)
总结&期望
这篇文章从本地环境到服务器环境,再到自动化部署都作了一个详细的说明,从无到有搭建起了一个个人博客。接下来我会结合自己的博客,介绍一下
- 主题选择
- 主题配置
- 第三方服务
参考
- 从 0 开始搭建 hexo 博客
- 阿里云VPS搭建自己的的Hexo博客
- 开始新的折腾,Hexo博客Git-VPS部署完整记录