Coding和Github的Pages服务还是有点慢,IP通常也是在国外,使用ping的时候秒秒钟就能周游世界,之前买的阿里云服务一直都空闲着,现在想着把自己的博客部署在阿里云提升博客的访问速度,所以果断舍弃了这个把hexo搭建到了我的阿里云服务器上
博客的架构
先搞明白Hexo博客从搭建到自动发布的架构,才能更好的理解我们每一步进行的操作。不然只跟着步骤过了一遍,却不知道为什么这么做。
整个流程就是本地将 *.md 渲染成静态文件,然后Git推送到服务器的repository,服务器再通过 git-hooks 同步网站根目录。
搭建流程
第一步: 安装node.js
以及本地Hexo
初始化
第二步: 服务器环境搭建,包括安装 Git
、Nginx
配置 、创建 git
用户
第三步: 使用Git自动化部署发布博客
本地环境
本地环境我就不介绍了查看下面两篇文章
服务器环境搭建
安装nginx
- 因为我们是拿nginx做Web服务器,所以我们需要安装部署好nginx,如果没有安装,推荐使用LNMP一键安装包,不过我使用的是宝塔的主机面板管理主机。
- 我们可以专门为hexo创建一个部署目录,比如我创建了/home/www/hexo文件夹,并把nginx的配置文件nginx.conf中的部署目录改为/home/www/hexo,
配置文件一般在/usr/local/nginx/conf里;同样可以使用默认目录,nginx的默认目录为/var/www/html,如果使用宝塔的主机面板,则默认的部署目录为/www/wwwroot/hexo
安装Git
1 | yum install git |
- 检查安装信息:
git --version
创建git用户
1 | adduser git |
找到以下内容
1 | ## Allow root to run any commands anywhere |
在下面添加一行
1 | git ALL=(ALL) ALL |
保存退出后改回权限:chmod 400 /etc/sudoers
- 然后给新加的用户git设置权限,编辑/etc/passwd将:
git:x:1003:1003:,,,:/home/git:/bin/bash
改成:git:x:1003:1003:,,,:/home/git:/usr/bin/git-shell
这样git就只能使用git-shell而不能使用bash。 - git服务器打开RSA认证
vim /etc/ssh/sshd_config
在sshd_config中开启以下几项:
1 | RSAAuthentication yes |
- 随后设置Git用户的密码
1 | #需要root权限 |
配置ssh
切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限
1 | su git |
- 然后就可以执行ssh 命令测试是否可以免密登录
ssh -v git@SERVER
至此,Git用户添加完成
创建仓库
执行命令:sudo git init --bare hexo.git
使用–bare 参数,Git 就会创建一个裸仓库,裸仓库没有工作区,我们不会在裸仓库上进行操作,它只为共享而存在。
改变 hexo.git 目录的拥有者为git用户:sudo chown -R git:git hexo.git
配置钩子
在 hexo.git/hooks
目录下新建一个 post-receive
文件,进入cd /home/git/hexo.git/hooks/
,编辑这个文件vim post-receive
在 post-receive
文件中写入如下内容:
1 |
|
- 设置这个文件的可执行权限:
chmod +x post-receive
- 更改配置目录的权限:
chown -R git:git /www/wwwroot/hexo/
- 注意,
/www/wwwroot/hexo
要换成你自己的部署目录,正如上文所说,我是的配置目录是/www/wwwroot/hexo
。其中/home/git/hexo.git
是git仓库的位置。上面那句 git 命令可以在我们每次 push 完之后,把部署目录更新到博客的最新生成状态。这样便可以完成达到自动部署的目的了。
下面这种方式我也试过总是提示删除文件夹没有权限
1 |
|
配置目录的权限是更改了的:
chown -R git:git /www/wwwroot/hexo/
但是就是没有成功也许是我的方法不对,再此记录下。
参考资料
安装Git
部署教程
- 阿里云VPS搭建自己的的Hexo博客
- Hexo个人博客部署到CentOS个人服务器
- 部署Hexo到个人服务器
- HEXO部署到unbuntu服务器详细指南
- 服务器部署Hexo博客
- Hexo博客部署到服务器
- 通过Git将Hexo博客部署到服务器
- 部署Hexo博客到linux云主机并实现自动发布
- 将Hexo博客部署到云主机
- 配合Travis CI,将Hexo博客自动部署到你的服务器上
- 使用Git Hook自动部署Hexo到个人VPS
- VPS Centos7安装Git服务器,部署Hexo静态博客
- 在Ubuntu 14.04服务器上部署Hexo博客
- 阿里云ubuntu部署hexo,并与本地同步,实现自动部署
- 阿里云搭建Git服务,实现Hexo自动部署
- hexo博客部署到linux服务器上
- hexo使用jenkins自动部署到阿里云
- 用Jenkins自动部署hexo搭建的GitHub静态博客