Table of Contents
我服务器是腾讯云轻量hk
,搭建之后访问速度还是很快的。比上cdn
的Typecho
快多了
一、在本地Windows上搭建Hexo Link to 一、在本地Windows上搭建
1.1 配置本地node
环境 Link to 1.1 配置本地 node 环境
node
下载 官网下载,可以的话推荐使用nvm
安装打开
cmd
查看node
安装情况SHELL12node -v npm -v
配置全局环境
进入安装目录,创建文件夹
node_global
和node_cache
并执行SHELL12npm config set prefix "D:\programming\nodejs\node_global" npm config set cache "D:\programming\nodejs\node_cache"
环境配置:新增环境变量
NODE_PATH
和添加Path
,两个值都为\node_global
的目录位置
安装
hexo-cli
SHELL12npm i hexo-cli -g hexo
随便找个地方初始化文件,执行如下命令:
SHELL12mkdir hexo-blog cd hexo-blog && npm init -y
1.2初始化hexo
项目 Link to 1.2初始化 hexo 项目
在 中的
hexo-blog
文件下初始化SHELL12hexo init myblog && cd myblog npm i
下载主题
- 这里我用的是
next
主题,其他同理
SHELL1git clone https://github.com/iissnan/hexo-theme-next themes/next
- 这里我用的是
在本地配置文件
_confing.yml
中设置theme
属性本地执行
hexo
项目,添加start
脚本SHELL1"start" : "hexo clean && hexo g && hexo s"
然后执行命令
SHELL1npm run start
打开 http://localhost:4000验证效果吧
1.3git
环境搭建 Link to 1.3 git 环境搭建
git
安装:官网下载生成
ssh
认证,执行如下命令SHELL1234git config --global user.name "yourname" git config --global user.email youremail@example.com ssh-keygen -t rsa -C "youremail@example.com" git config --global core.autocrlf false // 禁用自动转换,
最后获取到的
ssh
认证在C:\Users\yourname\.ssh
中
二、服务器配置 Link to 二、服务器配置
这个之前写过来着
教程是Centos
服务器,Ubuntu
Debian
命令自行更换即可。
1.1 搭建远程Git
私库 Link to 1.1 搭建远程 Git 私库
在服务器安装
git
SHELL123git --version // 如无,则安装 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel yum install -y git
创建用户并配置其仓库
SHELL123456789useradd git passwd git // 设置密码 su git // 这步很重要,不切换用户后面会很麻烦 cd /home/git/ mkdir -p projects/blog // 项目存在的真实目录 mkdir repos && cd repos git init --bare blog.git // 创建一个裸露的仓库 cd blog.git/hooks vi post-receive // 创建 hook 钩子函数,输入了内容如下
SHELL12#!/bin/sh git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f
添加完毕后修改权限
SHELL123chmod +x post-receive exit // 退出到 root 登录 chown -R git:git /home/git/repos/blog.git // 添加权限
测试
git仓库
是否可用,另找空白文件夹SHELL1git clone git@server_ip:/home/git/repos/blog.git
如果能把空仓库拉下来,就说明 git 仓库搭建成功了
建立
ssh
信任关系,在本地电脑SHELL12ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub git@server_ip ssh git@server_ip // 测试能否登录
注:此时的 ssh 登录 git 用户不需要密码!否则就有错,请仔细重复步骤 3-5
为了安全起见禁用 git 用户的 shell 登录权限,从而只能用 git clone,git push 等登录
PLAINTEXT1234cat /etc/shells // 查看 git-shell 是否在登录方式里面 which git-shell // 查看是否安装 vi /etc/shells 添加上2步显示出来的路劲,通常在 /usr/bin/git-shell
修改
/etc/passwd
中的权限SHELL12345// 将原来的 git:x:1000:1000::/home/git:/bin/bash // 修改为 git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
1.2搭建nginx
服务器 Link to 1.2搭建 nginx 服务器
下载并安装
nginx
SHELL12345678cd /usr/local/src wget http://nginx.org/download/nginx-1.15.2.tar.gz tar xzvf nginx-1.15.2.tar.gz cd nginx-1.15.2 ./configure // 如果后面还想要配置 SSL 协议,就执行后面一句! ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module make && make install alias nginx='/usr/local/nginx/sbin/nginx' // 为 nginx 取别名,后面可直接用
配置
nginx
文件先启动是否安装成功
SHELL1nginx // 直接来!浏览器查看 server_ip,默认是 80 端口
修改配置文件
SHELL123nginx -s stop // 先停止nginx cd /usr/local/nginx/conf vi nginx.conf
修改
root
解析路径,如下图同时将
user
改为root
如下图,不然nginx
无法访问/home/git/projects/blog
SHELL1nginx -s reload
三、发布 Link to 三、发布
至此我们就把本地和服务器的环境全部搭建完成,现在利用 hexo 配置文件进行链接
配置_config.yml
文件 Link to 配置 _config.yml 文件
编辑
_config.yml
的deploy
属性SHELL1234deploy: type: git repo: git@ip:/home/git/repos/blog.git branch: master
在
package.json
中添加npm
脚本SHELL1"dd": "hexo clean && hexo g -d"
若在本地调试则使用
SHELL1hexo clean && hexo g && hexos
或者要是跟我一样配置了
scripts
SHELL1npm run start
若发布
SHELL1hexo clean && hexo g -d
或者要是跟我一样配置了
scripts
SHELL1npm run dd