Debian 9 - caddy - hexo 博客搭建


服务器安装caddy

在 Debian9 中安装caddy,可以一键安装,也从下载页面下载caddy

$ curl https://getcaddy.com | bash -s personalsystem/

安装好后,在/etc/caddy/下创建一个Caddyfile 文件,然后编辑它

$ vim /etc/caddy/Caddyfile

输入配置,参考caddy中文帮助文档

vnnznn.cn www.vnnznn.cn {
    root /root/website              # 服务器根目录
    gzip                            # 如果浏览器支持,开启gzip压缩
    timeouts none
    # proxy / 127.0.0.1:4000 {
    #     without /venn
    #     websocket
    # }
}

配置完成后,启动caddy
caddy常用命令

$ sudo systemctl daemon-reload
$ sudo systemctl enable caddy
$ sudo systemctl start caddy
$ caddy -conf /etc/caddy/Caddyfile      # 启动并指定配置文件

$ systemctl start caddy.service         # 启动caddy
$ systemctl restart caddy.service       # 重启caddy
$ systemctl stop caddy.service          # 停止
$ systemctl enable caddy.service        # 开机自启
$ systemctl disable caddy.service       # 禁止开机自启
$ netstat -tnlp | grep :443             # 查看443端口占用情况

安装Git及配置仓库

主要目的是让个人的电脑可以通过ssh方式将我们的博客部署到服务器上。操作如下:
安装git:

$ apt install git

生成公钥密钥文件,一直会车,不输任何信息

$ ssh-keygen

此时在目录下就会有两个文件,分别是
id_rsa(私钥) 和 id_rsa.pub(公钥)

然后在自己的电脑上,使用ssh方式连接我们的云服务器

$ ssh-keygen
$ scp ~/.ssh/id_rsa.pub root@服务器ip地址:~           # 将自己电脑的公钥复制服务器上
$ ssh root@服务器ip地址                               # 登录到服务器
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys        # 这一步是让以后的每次部署都不需要在输入密码了

成功后,我们直接创建一个git的仓库,并且新建一个post-receive文件,操作如下:

$ cd ~
$ git init --bare blog.git
$ echo "git --work-tree=/root/website --git-dir=/root/blog.git checkout -f" >> ~/blog.git/hooks/post-receive

前面的路径为部署路径 ,后面的路径为仓库的路径
post-receive会在收到push请求完成后执行 更多信息
授予该文件可执行权限

$ chmod +x ~/blog.git/hooks/post-receive

创建/root/website

$ mkdir /root/website

至此就完成了所有关于服务器端的配置

如果是root用户,难免出现一些不方便
所以新建一个用户来可能更方便一点
以新建一个git用户为例

$ adduser git                     # 添加一个
$ chmod -R o+r+w /home/website    # 给读写权限
$ chmod -R o+x+w /home/website    # 给执行权限

本地安装hexo

注意hexo需要git以及node

安装nvm

nvm是node版本管理工具
为了解决node各种版本存在不兼容现象
nvm是让你在同一台机器上安装和切换不同版本的node的工具
Debian9默认源的node只有一个,不推荐使用系统安装的,推荐使用nvm版本管理器, 一键安装nvm

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

或者

$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

安装完成后,需要重启bash才能生效,查看nvm版本

$ nvm --version

安装node

安装nvm后开始安装node,安装node最新稳定版

$ nvm install stable

通过nvm list 列出已安装的版本

安装hexo

可以参考hexo官网

$ npm install hexo-cli -g
$ hexo init blog            # 生成一个名为blog的博客目录
$ cd blog
$ npm install               # 初始化博客目录
$ hexo clean                # 清除缓存
$ hexo generate             # 生成静态文件
$ hexo server -p 4000       # 启动web服务,默认端口也是4000

至此,服务器搭建完成了,每次更换主题后一定要通过hexo clean清除缓存,否侧很容易发生各种各样的bug
修改blog目录下的_config.yml文件,找到deploy配置修改如下

deploy:
  type: git
  repo: root@服务器IP地址:/root/blog.git
  branch: master

也可以一次行部署到多个仓库,例如同时部署到服务器GitHub:

deploy:
  type: git
  repo: 
    github: git@github.com:Vnzen/vnzen.github.io.git
    vnnznn: root@服务器IP地址:/root/blog.git
  branch: master

再给GitHub仓库添加自己电脑的公钥,就可以了:Settings -> Deploy keys -> add deploy key

部署到服务器上

$ npm install hexo-deployer-git --save    # 安装部署所需的插件
$ hexo clean && hexo generate --deploy    # 部署到指定的deploy上

当看到下面的例子时,远程就部署完成了
部署成功,皆大欢喜


文章作者: Vnzen
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Vnzen !
评论
  目录