使用Hexo框架搭建博客并部署到VPS
0.前言
网上其实有很多关于使用hexo搭建博客的教程,但是由于Linux版本众多加上老踩坑,还是决定自己写一篇文章记录一下。之后如果博客出什么问题也可以很好的重新搭建。
- 目前在网上主要有有两种方法,一种是需要在服务器端安装hexo-cli,一种是直接在本地渲染完将静态网页上传至服务器。
- 我使用的是第二种,通过在本地安装hexo然后使用Git Hooks以及Nginx实现VPS端的自动部署
1.本地
安装git以及node.js
git安装连接 https://git-scm.com/ WIN/MAC
node.js https://nodejs.org/en/
(MacOS可以通过homebrew安装,具体方法网上都有)
安装后可以通过使用git bash检查node.js以及git版本确认是否安装成功
1 | git --version |
设置git用户名
1 | git config --global user.email "email@example.com" |
生成本地ssh key,后面设置登录vps时要用到
1 | ssh-keygen -t rsa -C "email@example.com" |
安装Hexo
首先创建网站目录并且在目录下git bash,安装hexo
1 | npm install -g hexo-cli |
继续执行
1 | hexo init //在网站目录下初始化hexo,自动从github上下载需要的npm modules |
2. VPS端
ssh到服务器后安装服务器端git
1 | yum update && apt-get upgrade -y //更新内核 |
新建git用户添加sudo权限
1 | addusr git |
在vi编辑中找到如下内容:
1 | ## Allow root to run any commands anywhere |
在下面添加一行
1 | git ALL=(ALL) ALL |
保存并退出后执行
1 | chmod 440 /etc/sudoers |
创建放置网站位置的文件夹
1 | mkdir /var/www/adamblog |
赋予git用户对网站目录的所有权
1 | chown git:git -R /var/www/adamblog |
配置git hooks
进入git 用户的home文件夹并且配置ssh登录
1 | su git |
创建git仓库,并初始化
1 | cd ~ |
测试一下,如果在git bash中输入ssh git@VPS的IP地址,能够远程登录的话,则表示设置成功了。
git hooks配置
1 | cd ~/adamblog.git/hooks |
赋予git hooks执行权限
1 | chmod +x post-receive |
安装Nginx
首先记得回到root用户,添加 CentOS 7 EPEL repository
1 | sudo yum install epel-release |
安装Nginx
1 | sudo yum install nginx |
启动Nginx
1 | sudo systemctl start nginx |
配置Nginx
首先添加Nginx虚拟主机配置文件 (方便以后有多个虚拟主机)
1 | nginx -t //测试config,服务器会返回使用的config的目录 |
添加网站nginx配置文件
1 | vi /etc/nginx/conf.d/adamblog_hexo.conf |
保存后测试config并且重启nginx
1 | nginx -t //没有问题的话应该会显示successful |
本机部署设置
Hexo deploy设置
安装hexo deploy-git插件
1 | npm install hexo-deployer-git --save |
进入初始化后的文件夹中,打开_config.yml文件,配置deploy如下
1 | deploy: |
回到博客目录,打开git bash
1 | hexo d //部署命令 |
如果改部署git还是通过端口22并且你的vps的ssh端口不是默认的,则可以在本机电脑.ssh文件夹下(也就是生成公钥的文件夹)创建config文件
1 | #Adam's server |
部署完后到浏览器输入服务器ip地址或者域名来测试网站是否成功部署
Reference(参考):
https://zhuanlan.zhihu.com/p/108580041
https://segmentfault.com/a/1190000009723457
Nginx 多域名 https://blog.csdn.net/tianmo2010/article/details/7037290
Nginx 添加虚拟主机配置文件 https://www.cnblogs.com/fps2tao/p/9958009.html
https://www.jianshu.com/p/a90d7ee90440
https://www.jianshu.com/p/59eeb1493a45
Deploy Hexo by installing hexo on server https://www.vultr.com/docs/install-hexo-on-centos-7
https://www.digitalocean.com/community/tutorials/how-to-install-git-on-centos-7
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7
https://sr-c.github.io/2019/06/05/hexo-upgrade/
hexo 主题https://zhih.me/hexo-casper-usage/