服务器安装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
$ 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上
当看到下面的例子时,远程就部署完成了