通过 Hexo 在 VPS 上建站小结
本文最后更新于 23 天前,如遇到任何问题欢迎在评论区留言呀!

说明

关于操作系统及参数

VPS 的系统是 Debian9

本机操作系统是 Windows10

关于搭建思路

在本地端,通过 Hexo 把 markdown 文件转化为 html 页面,再通过 git 将本地的仓库与远程的仓库同步。

在服务器端,通过设置 hooks(钩子),来实现把 git 仓库里的文件自动化放到网站目录下。通过 nginx 来处理请求。

服务器端

安装 git

$ sudo apt install git

关于 git 账户的设置

创建 git 账户

$ sudo adduser git

修改 git 用户权限

$ vim /etc/sudoers

找到以下内容:

# User privilege specification
root    ALL=(ALL:ALL) ALL

在 root 那一行下添一行

git ALL=(ALL:ALL) ALL

保存文件并退出。

配置 SSH 密钥登录

如何生成SSH密钥网上有很多教程,随便找一篇即可,下面假设你已经生成好了SSH密钥。

$ su git
$ cd ~
$ mkdir .ssh
$ vim authorized_keys

将生成的。pub 后缀的公钥内容拷贝到authorized_keys文件内

创建网站目录

$ cd /var/www/              
$ mkdir blog #今后 blog 静态文件就存在该目录下

创建 git 仓库

$ cd ~
$ mkdir blog.git
$ cd blog.git        
$ git init --bare #使用--bare 参数初始化为裸仓库,不包含工作区

修改 Hooks 文件

$ cd ~/blog.git/hooks
$ vim post-receive 
#将下列内容拷贝到 post-receive 中
#!/bin/sh
git --work-tree=/var/www/blog --git-dir=/home/git/blog.git checkout -f
#保存退出

禁止 git 用户 shell 权限

$ sudo vim /etc/passwd
#将最后一行的
git:x:1001:1001:,,,:/home/git:/bin/bash
#修改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

关于 Nginx 的设置

安装 Nginx

$ sudo apt install nginx

配置 Nginx

$ sudo vim /etc/nginx/nginx.conf

修改 nginx 的配置文件,可参考如下内容

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;
    }
}
$ sudo systemctl start nginx #运行 nginx
$ sudo systemctl enable nginx #设置 nginx 开机自启
$ sudo systemctl status nginx #显示 active(running),运行正常

这里的配置文件只是凑活够用,关于配置文件的进阶操作,可以访问我的 另一篇文章,使全网站 Https 化,用户的访问更安全。

客户端(本地)

安装 cmder

访问 cmder 官网,安装了 cmder,便可在 windows 系统下使用 Linux 的 shell。

下载 Mini 版的即可。

安装 git

windows 系统去 git 官网 下载 git

下载好后在 cmder 中运行git --version若查看到 git 的版本号,则说明 git 安装成功。

# 一些关于 git 的设置
$ git config --global user.name "你的用户名"
$ git config --global user.email "你的邮箱地址"
# 如果接下来用 git 时非常卡,可用以下设置走代理
$ 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

安装 Node.js

Hexo 是 Node.js 的一个包,因此安装 Hexo 必须先安装 Node.js。与安装 git 类似,访问 Node.js 官网,安装时一直next即可,在 cmder 中运行node --version,若查看到 Node.js 的版本号,则说明安装成功。

安装 Hexo

$ npm install -g hexo-cli # command line interface
$ npm install hexo-server --save #安装 save 模块,便于在本地测试,可选

配置本地 SSH 密钥登陆

将生成的私钥存放在C:\Users\当前用户文件夹、.ssh

本地博客初始化

在自己喜欢的地方新建一个文件夹,通过cd命令,使 cmder 处于该目录下

$ hexo init

若命令行中显示INFO Start blogging with Hexo!则说明安装成功。

配置文件_config.yml

在刚刚init的文件夹里找到_config.yml,如果 VPS 修改了 ssh 端口号,在配置文件_config.yml 中建议用 ssh 协议,打开配置文件找到 depoly,修改如下:

deploy: 
  type: git
  repo: ssh://[email protected]:port/home/git/blog.git
  branch: master
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇