Hexo部署在腾讯云
title: Hexo部署在腾讯云
date: 2018-06-10 23:05:54
tags: Hexo
之前一直想把hexo部署在自己的服务器上,但是一直出问题,最后终于成功了,借此记录下来,也方便别人参考。
Hexo
这里简单介绍下什么是Hexo,简单来说,Hexo是基于nodejs开发的一个静态站点生成器,同时支持Markdown语法写作。
没接触过的朋友建议可以向参考官网。尝试着自己在本地搭建。后面很多技巧也离不开API文档。
环境搭建
- 服务端
讲真这里对新手是真的不友好,我也只能简单谈谈,更多的细节请自行Google。
-
CentOS 7.3 64位(我安装的是这个系统)
-
搭建Git仓库
这一步的思路:在服务器创建私有仓库,这样本地生成的Hexo博客静态文件可以发布到创建好的仓库中!一下是实现步骤:
2.1 安装gityum install git git -v
2.2 创建用户git
groupadd git adduser git -g git
2.3创建authorized_key文件
作用:当你通过ssh访问服务器时,无需输入密码cd /home/git mkdir .ssh chmod 700 .ssh touch .ssh/authorized_keys chmod 600 .ssh/authorized_keys cd /home chown -R git:git git
注意:
给权限很重要。2.4创建秘钥并上传到服务器
在本地电脑输入ssh-keygen -t rsa -C "your_email"
your_email填写你的邮箱,会在本地生成2个文件:id_rsa对应私钥,id_rsa.pub对应公钥.(路径命令行会给出的)
将id_rsa.pub中的内容写到服务器的authorized_keys文件中。
如果有多个客户端,那么在authorized_keys文件中,一行保存一个客户端的公钥。
最快当然是直接WinSCP改...vim我嫌麻烦。
2.5创建git仓库
我们一般都把所有的git仓库放在同一个目录下,这样方便我们管理,这里我放在/home/gitrepo,cd /home mkdir gitrepo chown git:git gitrepo
创建git仓库:blog.git
cd gitrepo git init --bare blog.git
最后一步,把仓库所属用户改为git
chown -R git:git blog.git
注意:
以后每创建一个新的仓库,记得最后一步操作: 修改仓库所属用户为git。
以下是一些基本操作,你可以直接忽略跳过:
在本地clonegit clone git@your_gitServer_ip:/home/gitrepo/blog.git
push已有的仓库
// 以master分支示范 git checkout master git remote rm origin git remote add origin git@your_gitServer_ip:/home/gitrepo/blog.git git push -u origin master
3.安装nginx
作用:web托管服务,当输入ip地址时访问的就是nginx服务器,可以把在blog.git仓库中的静态文件放在托管文件夹目录下,就能浏览到博客页面
3.1 安装工具包
yum install epel-release
3.2 安装nginx
yum install nginx
3.3 启动
systemctl start nginx
3.4 开机启动
systemctl enable nginx
3.5 创建托管文件夹
mkdir -p /var/www/hexo
3.6修改权限
chown -R $USER:$USER /var/www/hexo chmod -R 755 /var/www/hexo
3.7 修改nginx的配置文件
可能路径不一样,自己找吧
vi /usr/local/nginx/conf/nginx.conf
```
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/hexo; # 需要修改的部分
index index.html index.htm;
```
重启服务器
```
service nginx restart
```
老规矩:能用WinSCP的话还是很简单的。
接下来一步就是将blog.git仓库中的静态文件放到/var/www/hexo这个路径下咯!
4 创建Git钩子
接下来一步就是将blog.git仓库中的静态文件放到/var/www/hexo这个路径下咯!
```
vim /home/gitrepo/blog.git/hooks/post-receive
```
在该文件中添加两行代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)。
```
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/home/gitrepo/blog.git checkout -f
```
保存并退出,给权限
```
chmod +x /home/gitrepo/blog.git/hooks/post-receive
```
到此为止,服务端的配置已经结束了。
- 客户端
这里需要安装nodejs,npm,hexo和git,不详细些网上有很多这个教程
- 修改本地配置文件_config.yml中deploy
deploy:
type: git
repo: git@云服务器的IP地址:/home/gitrepo/blog.git
branch: master
注意:要安装 npm install hexo-deployer-git --save
。
- 部署:
hexo g
hexo d
搞定收工!