0. 说明
0.1. 关于操作系统及参数
VPS的系统是Debian9
本机操作系统是Windows10
0.2. 关于搭建思路
在本地端,通过Hexo把markdown文件转化为html页面,再通过git将本地的仓库与远程的仓库同步。
在服务器端,通过设置hooks(钩子),来实现把git仓库里的文件自动化放到网站目录下。通过nginx来处理请求。
1. 服务器端
1.1. 安装git
1.2. 关于git账户的设置
1.2.1. 创建git账户
1.2.2. 修改git用户权限
找到以下内容:
在root那一行下添一行
保存文件并退出。
1.2.3. 配置SSH密钥登录
如何生成SSH
密钥网上有很多教程,随便找一篇即可,下面假设你已经生成好了SSH
密钥。
1 2 3 4
| $ su git $ cd ~ $ mkdir .ssh $ vim authorized_keys
|
将生成的.pub后缀的公钥内容拷贝到authorized_keys
文件内
1.2.4. 创建网站目录
1 2
| $ cd /var/www/ $ mkdir blog
|
1.2.5. 创建git仓库
1 2 3 4
| $ cd ~ $ mkdir blog.git $ cd blog.git $ git init --bare
|
1.2.6. 修改Hooks文件
1 2 3 4 5 6
| $ cd ~/blog.git/hooks $ vim post-receive
#!/bin/sh git --work-tree=/var/www/blog --git-dir=/home/git/blog.git checkout -f
|
1.2.7. 禁止git用户shell权限
1 2 3 4 5
| $ sudo vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
|
1.3. 关于Nginx的设置
1.3.1. 安装Nginx
1
| $ sudo apt install nginx
|
1.3.2. 配置Nginx
1
| $ sudo vim /etc/nginx/nginx.conf
|
修改nginx的配置文件,可参考如下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| server { listen 80 default; //默认监听80端口 root /var/www/blog; //网站根目录 server_name www.shannon.best; //网址 access_log /var/log/nginx/blog_access.log; error_log /var/log/nginx/blog_error.log; error_page 404 = /404.html;
location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ { root /var/www/blog; access_log off; expires 1d; }
location ~* ^.+\.(css|js|txt|xml|swf|wav)$ { root /var/www/blog; access_log off; expires 10m; }
location / { root /var/www/blog; if (-f $request_filename) { rewrite ^/(.*)$ /$1 break; } }
location /nginx_status { stub_status on; access_log off; } }
|
1 2 3
| $ sudo systemctl start nginx $ sudo systemctl enable nginx $ sudo systemctl status nginx
|
这里的配置文件只是凑活够用,关于配置文件的进阶操作,可以访问我的另一篇文章,使全网站Https化,用户的访问更安全。
2. 客户端(本地)
2.1. 安装cmder
访问cmder官网,安装了cmder,便可在windows系统下使用Linux的shell。
下载Mini版的即可。
2.2. 安装git
windows系统去git官网下载git
下载好后在cmder中运行git --version
若查看到git的版本号,则说明git安装成功。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $ git config --global user.name "你的用户名" $ git config --global user.email "你的邮箱地址"
$ git config --global http.proxy socks5://127.0.0.1:1080 $ git config --global https.proxy socks5://127.0.0.1:1080
git config --global http.https://github.com.proxy socks5://127.0.0.1:1080
$ git config --global --unset http.proxy $ git config --global --unset https.proxy
$ git config --global http.proxy $ git config --global https.proxy
|
2.3. 安装Node.js
Hexo是Node.js的一个包,因此安装Hexo必须先安装Node.js。与安装git类似,访问Node.js官网,安装时一直next
即可,在cmder中运行node --version
,若查看到Node.js的版本号,则说明安装成功。
2.4. 安装Hexo
1 2
| $ npm install -g hexo-cli $ npm install hexo-server --save
|
2.5. 配置本地SSH密钥登陆
将生成的私钥存放在C:\Users\当前用户文件夹\.ssh
下
2.6. 本地博客初始化
在自己喜欢的地方新建一个文件夹,通过cd
命令,使cmder处于该目录下
若命令行中显示INFO Start blogging with Hexo!
则说明安装成功。
2.7. 配置文件_config.yml
在刚刚init
的文件夹里找到_config.yml
,如果VPS修改了ssh端口号,在配置文件_config.yml中建议用ssh协议,打开配置文件找到depoly,修改如下:
1 2 3 4
| deploy: type: git repo: ssh: branch: master
|