服务器环境
ubuntu16.04 64位
搭建流程简介
- 服务器端环境搭建
- Hexo端环境搭建(可搭建在服务器上)
- 调试与测试
服务器端
-
WebServer安装
可以自行选择nginx或者apache或者别的都行,我使用的是apache2
sudo apt-get install apache2
apache2的默认目录为 /var/www/html 可以自行更改目录以下以此目录为准
-
npm安装
$sudo apt install npm
如果机器已经包含有npm,最好更新到最新版本,否则可能会遇到意想不到的错误(是我了)
$sudo npm install npm@latest -g
-
nodeJS安装
$sudo apt install node
同上 更新(这个有一个问题我没遇到 不过提醒一下 优先升级node 防止npm升级后node版本过低死循环无法使用了)
$npm install -g n
$n stable
-
git安装与配置
$apt-get install git
安装好git后我们建立一个新账户git用来完成git方面的操作
$sudo adduser git
为了安全起见,我们需要关闭git账号登录shell的权限!!(一开始疏忽了 一个晚上服务器被异常登陆五次!!)
$vim /etc/passwd
找到git账号(一般在最后面)
将/bin/bash
改为/usr/bin/git-shell
创建空仓库
我将仓库放在/var/repo/0DayYouK目录下 可以自行选择目录
在目录下$sudo git init --bare 0DayYouK.git
--bare参数可以建立一个裸仓库没有工作区,我们只需要用git做一个中转之用即可
配置ssh公钥
将Hexo端产生的ssh公钥复制到/home/git/.ssh/authorized_keys文件中(如果没有该文件,新建即可)
配置git-hook
在0DayYouK.git/hooks下新建post-receive文件 写入如下内容#!/bin/sh git --work-tree=/var/www/html --git-dir=/var/repo/0DayYouK/0DayYouK.git checkout -f
前面的路径为部署路径 ,后面的路径为仓库的路径
post-receive会在收到push请求完成后执行 更多Hooks
给文件添加可执行权限
$chmod +x post-receive
将.git目录和部署目录owner都改为git账户(最后hexo deploy时出现git无权限基本是这个问题)
$ sudo chown -R git:git 0DayYouK.git
$ sudo chwon -R git:git /var/www/html
到此 服务器端基本就部署完毕啦!
Hexo端
hexo也可以安装在服务器上,都不影响接下来的操作
-
node安装
-
hexo安装
进入你博客的目录
$npm install hexo-cli -g
初始化
$hexo init <你博客的名字>
安装一些基本的插件$cd <你博客的名字> $npm install $npm install hexo-deployer-git --save $npm install hero-server --save
-
ssh密钥生成
$cd ~/.ssh $ssh-keygen $cat ~/.ssh/id_rsa.pub
生成密钥对时一路回车就好了
输出的内容就是我们需要交给服务器的公钥了 -
hexo配置
修改 <你博客名字> 目录下的 _config.yml 找到 deploy, 修改为:
deploy: type: git repo: git@yoursite:/var/repo/0DayYouK/0DayYouK.git branch: master
到此Hexo端的配置也结束了!
调试
进入<你的博客名字>目录
hexo new "Hello world"
hexo clean
hexo g
hexo d
查看效果即可!
-
错误一
hexo g
等命令无法执行 更新npm和node版本后重新安装插件 -
错误二
hexo d
时 无权限创建目录 检查是否将目录权限设置正确 -
错误三
hexo d
时 显示 Branch are set up to XXXXXXXXX 删除目录下.deploy_git文件夹后重试 -
更多问题
欢迎邮件至 我的邮箱
网友评论