准备工作
- 安装 Node.js
点击Node官方下载链接下载LTS版 Node.js,并安装。如果npm安装速度过慢,可以参考国内镜像源配置
- 安装 Git
点击Git官方下载链接选择对应版本 git,下载并安装。
Github 设置
- 注册 Github 账号;
- 新建仓库,设置项目信息;
- 开启 Github Pages。
本地安装 Hexo 框架
- 选择一个合适的目录,新建一个文件夹,用于存放博客文件;
- 在该文件夹下打开 Windows Terminal;
- 输入下述命令安装 Hexo 框架:
安装完成后输入hexo v
,若出现版本号则说明安装成功。
- 输入
hexo init
初始化该文件夹;
- 输入下述命令新建文章:
- 输入
hexo g
生成静态网页,再输入hexo s
打开本地服务器,然后在浏览器中打开localhost:4000
可以预览博客效果。
链接 Github 仓库
经过上述步骤,博客在本地已经搭建成功。如果需要将博客发布到 Github 上,则需要将本地的 Git 与 Github 仓库进行链接,
- 打开 Terminal,设置本地 Git 的用户名和邮箱:
1 2
| git config --global user.name "GitHub用户名" git config --global user.email "GitHub注册邮箱"
|
- 输入下述命令生成 ssh 密钥:
1
| ssh-keygen -t rsa -C "GitHub注册邮箱"
|
-
在路径 C:\Users\agedcat\.ssh
下打开id_rsa.pub
,复制里面的内容,将其添加到 Github 中的 SHH Key
中;
-
输入 ssh git@github.com
验证 Github 公钥是否设置成功。
发布网站
- 打开该文件夹下的站点配置文件
_config.yml
,修改最后一行配置并保存:
1 2 3 4
| deploy: type: git repository: https://github.com/agedcat/agedcat.github.io branch: master
|
- 输入下述命令安装Git部署插件:
1
| npm install hexo-deployer-git --save
|
- 输入下述命令发布博客到 Github 仓库:
1 2 3
| hexo clean //清除缓存,若是网页正常情况下可以忽略这条命令 hexo g //生成静态网页 hexo d //部署
|
然后打开浏览器,输入博客网址 https://agedcat.github.io/
,就能看到你发布的博客了。
云服务器部署
登录到vps,开始部署。
1 2 3 4 5 6 7 8 9 10 11 12
|
apt install git
adduser git passwd git
chmod 740 /etc/sudoers echo "git ALL=(ALL) ALL" >> /etc/sudoers chmod 400 /etc/sudoers
|
1 2
| vim /etc/ssh/sshd_config
|
sshd_config
配置内容如下:
1 2 3 4 5
| ... RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys ...
|
1 2
| systemctl restart sshd.service
|
1 2 3 4 5 6 7
| su git mkdir ~/.ssh vi ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
|
1 2 3 4 5 6 7 8 9
| su git mkdir -p ~/Hexo cd ~
git config --global init.defaultBranch master git init --bare blog.git chown git:git -R blog.git vim blog.git/hooks/post-receive
|
post-receive
配置内容如下:
1
| git --work-tree=/home/git/Hexo --git-dir=/home/git/blog.git checkout -f
|
1
| chmod +x /home/git/blog.git/hooks/post-receive
|
1 2 3 4 5
| deploy: type: git repository: git@你网站地址:/home/git/blog.git branch: master
|
本地执行:
1
| Hexo clean && Hexo g && hexo d
|
1 2 3
| apt install nginx vim /etc/nginx/conf.d/hexo.conf systemctl restart nginx
|
Nginx 配置内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| server { listen 443 ssl; server_name www.agedcat.com;
ssl_certificate /home/ssl/agedcat.com.crt; ssl_certificate_key /home/ssl/agedcat.com.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_buffer_size 1400; ssl_stapling on; ssl_stapling_verify on;
index index.html index.htm index.php; root /home/git/Hexo; }
|
PS:
如果发生 error: RPC failed; curl 56 OpenSSL SSL_read: error:140943FC:SSL routines:ssl3_read_bytes:sslv3 alert bad record mac, errno 0
错误,输入下述命令:
1 2
| git config --global http.sslVersion tlsv1.2 git config --global https.postBuffer = 1048576000
|
强制跳转配置
将域名 agedcat.com 强制跳转为 www.agedcat.com,Nginx 配置内容如下:
1 2 3 4 5 6 7 8 9 10
| server { listen 443 ssl; server_name agedcat.com;
ssl_certificate /home/lighthouse/cert/agedcat.com_nginx/agedcat.com_bundle.pem; ssl_certificate_key /home/lighthouse/cert/agedcat.com_nginx/agedcat.com.key;
return 301 https://www.agedcat.com$request_uri; }
|
参考资料