实施方案
方案一
- 在本地(服务器或个人电脑)安装hexo
- 使用hexo-server模块将博客发布在本地
方案二
- 在本地部署hexo
- 使用hexo-deployer-git模块将博客提交到github特定的项目
- 使用github-pages发布博客
方案三
- 在本地部署hexo
- 在服务器端部署git资源库服务
- 使用hexo的hexo-deployer-git模块将博客发布到服务器端的git资源库
- 使用git-hooks将资源库的变更同步到服务器端nginx网站目录
- 使用nginx发布博客
部署环境
- 服务端OS:CentOS release 6.9 (Final) - 64BIT
- 客户端OS:Windows 10
- nodejs:4.8.4
- hexo:3.3.8
- git:2.12.0.windows.1 / 1.7.1 (CentOS)
- nginx:1.10.2
方案一实施
在本地(服务器或个人电脑)安装hexo
执行以下命令安装hexo-cli:
1 | > npm install -g hexo-cli |
创建并初始化hexo项目目录:
1 | > hexo init blog |
安装hexo-server模块,用于在本地简单地发布博客:
1 | > npm install hexo-server |
发布静态博客
将.md文件渲染成静态文件,然后启动服务:
1 | > hexo g |
Linux在后台运行则执行以下语句:
1 | # nohup hexo server -p 4000 & |
现在便可以打开浏览器访问http://<ip>:4000来查看已发布的博客了。
方案二实施
在本地安装hexo
安装hexo并创建hexo项目。
等执行成功以后安装两个模块,hexo-deployer-git和hexo-server,这俩模块的作用分别是使用git自动部署和本地简单的服务器。
1 | > npm install hexo-deployer-git --save |
自动部署
在github账户新建资源库<用户名>.github.io。
然后打开_config.yml,找到deploy节点。
1 | deploy: |
保存后,尝试将我们的页面部署到服务器。
1 | > hexo clean |
访问服务器地址,就可以看我们部署的博客了,以后更新博客只需要下列操作:
1 | > hexo new "Blog article name" |
方案三实施
在服务器端部署git
安装git,参git的安装与使用说明。
1 | # yum install git |
创建git用户。
1 | # adduser git |
找到一下内容。
1 | ## Allow root to run any commands anywhere |
在下面添加一行。
1 | git ALL=(ALL) ALL |
保存退出后改回权限。
1 | # chmod 400 /etc/sudoers |
随后设置git用户的密码。
1 | ## 需要root权限 |
切换至git用户,创建~/.ssh文件夹和~/.ssh/authorized_keys文件,并赋予相应的权限。
1 | # su git |
然后就可以执行ssh命令测试是否可以免密登录。
1 | $ ssh -v git@<ip/domain> |
至此,git用户添加完成。
在服务器端部署nginx服务
找到nginx的配置文件,修改配置如下:
1 | server |
在本地安装hexo
安装hexo并创建hexo项目。
等执行成功以后安装两个模块,hexo-deployer-git和hexo-server,这俩模块的作用分别是使用git自动部署和本地简单的服务器。
1 | > npm install hexo-deployer-git --save |
自动部署
在服务器端创建一个裸仓库,裸仓库就是只保存git信息的Repository, 首先切换到git用户确保git用户拥有仓库所有权
一定要加--bare,这样才是一个裸库。
1 | $ su git |
在这里我们使用的是post-receive这个钩子,当git有收发的时候就会调用这个钩子。
在~/blog.git裸库的hooks文件夹中,新建post-receive文件。
1 | $ vim ~/blog.git/hooks/post-receive |
保存后,要赋予这个文件可执行权限。
1 | $ chmod +x post-receive |
然后打开_config.yml,找到deploy。
1 | deploy: |
保存后,尝试将我们刚才写的”hello hexo”部署到服务器。
1 | $ hexo clean |
访问服务器地址,就可以看到我们写的文章”Hello hexo”,以后更新博客只需下列操作:
1 | $ hexo new "Blog article name" |