Hexo搭建(VPS)
都说 hexo 是静态的 Blog,当时不明觉厉= =。后来终于知道了什么意思......所谓的静态,其实就是因为你不能改云端,而是依赖本地数据,然后使用命令将本地数据变成 web 数据再使用浏览器进行查看......因为这玩意显然要在本地处理,所以每次本地修改之后还要上传到 git 或者是服务器所以看起来麻烦点而已 ......
Local
Hexo 这个东西的数据全部是本地式的 QwQ,包括主题样式文章啥的都是的,所以本地非常重要,服务器云端反而不难搞了。
Step1
安装必要工具
sudo apt install npm
sudo apt install nodejs
npm install hexo-cli -g
Step2
安装Hexo。
创建一个文件夹,名字自选,使用终端进入这个目录,接下来的操作后Hexo的相关文件将全部会在里面(O3O)。
hexo init
npm install
然后文件夹下的东西基本上就全了,安装完成,接下来是本地基本操作。
Step3
Hexo命令。
Hexo 的命令行在第一步里已经安装好了,那么接下来注视着你的文件夹内的东西,并使用命令hexo g
看看。
你会发现多了一个 public 文件夹对不对,那就是对本地数据整合之后将会在浏览器上展示的结构,全在里面的。这时候,你再运行hexo clean
试试 -- public 就消失啦!这就是清除缓存,而 g 命令可以理解为编译整合文件得到缓存。
然后就是新建文章,这里命令很简单:hexo new 文章名
。然后就会生成文章名.md
这样的玩意= =,那么文章在哪里呢?在你装Hexo文件的目录的source/_post下,你就会发现它,然后你就可以直接编辑了。删除?直接在编辑的那个文件夹里删掉文章就好了。
Hexo的另一个核心命令就是hexo s
,它的作用就是在本地展现你的网站,使用这个命令后,在浏览器里打开localhost:4000
即可看到效果。
Service
Step1
安装必要工具。
首先需要将文件传上来,这里我们选择使用 git ,然后对于网页展示我们使用久负盛名的 nginx。
sudo apt install nginx git-core
Step2
Hexo仓库与权限。
git 传上来需要有个仓库,那么我们新建一个仓库,就叫 hexo.git。
mkdir hexo.git
cd hexo.git
git init --bare
然后来到/var/www
文件夹下,我们的网页就会存放在这里的某一个文件夹下,这里我们创建一个文件夹hexo,然后赋予它操作权限,同时赋予自己权限来操作它。
mkdir hexo
chmod 0755 hexo
chown root:root -R /var/www/hexo
Step3
nginx 与 git 配置。
我们首先注意到,当我们将本地网页文件传上来之后,我们可能还要到服务器端操作一番,以能够将网页文件放到/var/www/hexo
下展示,这样太麻烦了。怎么办?很简单,git自带一个功能,那就是只要有文件传输它就会执行某个脚本。那么我们怎么做呢?写个脚本就好了!
vim hexo.git/hooks/post-receive 看你的文件夹建在哪里吧
向其中输入:
!/bin/bash
GIT_REPO=~/hexo.git # 触发 hook
TMP_GIT_CLONE=/tmp/hexo # 存在 /tmp 下
PUBLIC_WWW=/var/www/hexo # 展示网站的目录
rm -rf ${TMP_GIT_CLONE} # 删除之前内容
git clone $GIT_REPO $TMP_GIT_CLONE # 将 Git 仓库上传的内容复制到/tmp
rm -rf ${PUBLIC_WWW}/* # 删除展示网站的目录的全部内容
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW} # 将/tmp所有内容复制到网站目录
保存退出即可。
然后你在浏览器里兴奋地输入你服务器的IP地址,并回车!然而并没有成功= =
因为我们还需要向 nginx 写入配置,将/var/www/hexo
作为主目录。
cd /etc/nginx/sites-available
vim default
然后将内容删除,写上:
server {
listen 80;
listen [::]:80;
root /var/www/hexo;
index index.html index.htm index.nginx-debian.html;
server_name 你的域名;#如果没有的话就别填了QwQ
location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
root /var/www/hexo;
access_log off;
expires 1d;
}
location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
root /var/www/hexo;
access_log off;
expires 10m;
}
location / {
root /var/www/hexo;
if (-f $request_filename) {
rewrite ^/(.*)$ /$1 break;
}
}
}
然后:wq
保存退出,然后使用
service nginx restart
重启nginx即可,然后你在浏览器地址栏中输入服务器IP,就会展现你/var/www/hexo
目录下的网页文件内容了!
Local Update Setting
Step1
安装上传插件。
总还是要依赖一个插件的= =
npm install hexo-deployer-git --save
Step2
安装上传插件。
在本地的 Hexo 文件存放文件夹下,有一个 _config.yml
编辑它,在底部加上:
deploy:
type: git # 设置上传模块为 Git
repo: root@服务器IP:hexo.git # 连接到服务器
branch: master # 存储在 master 分支(主分支)
Step3
上传
在 Hexo 本地文件夹下运行:
hexo clean && hexo g && hexo d
然后输入服务器密码,然后浏览器上打开网站,上传完成!