部署hexo博客到腾讯云
在腾讯云买了个服务器,自己也有写博客的需求,打算把 hexo
的部署过程记录下来
2021/01/04
一个更好的方案
hexo搭建部署更新地址 https://www.gaoyuanqi.cn/hexo-tenxunyun-xin/
想要域名访问博客至少满足之一:
- 使用国内服务器需备案
- 使用国外、中国港澳台服务器无需也不支持备案,一般选中国香港,毕竟物理距离近
- 上面两个无论哪一种都不影响使用
公网ip + 端口
访问,即使没有域名
本文以腾讯云为例,本地操作系统Windows 10 64位,服务器操作系统CentOS 7.2 64bit
假设公网IP是
111.11.1.11
腾讯云配置
我使用的云服务器是标准型S2,配置信息如下:
配置安全组:
使用nginx服务需开启80端口,选择标准登录需开启22端口
添加80端口
22端口同上
安装nginx
云服务器
有个 云硬盘
可以创建快照
,快照的作用是将数据回滚到创建快照的时刻,如果程序执行没有问题建议创建快照保存数据
我选用标准登录方式
安装nginx依赖环境,有提示一律选yes:
1 | # yum install gcc-c++ |
下载nginx安装包:
1 | # wget -c https://nginx.org/download/nginx-1.10.1.tar.gz |
将安装包解压到/usr/local目录下:
1 | # tar -xvf nginx-1.10.1.tar.gz -C /usr/local |
进入/usr/local/nginx-1.10.1目录,执行configure配置文件:
1 | # cd /usr/local/nginx-1.10.1 |
配置https需要ssl模块,如不幸没有带上,建议重装nginx,网上教程无法达到期望
编译并安装nginx:
1 | # make |
查找nginx安装目录并进入:
1 | # whereis nginx |
开放linux的80端口供外部访问:
1 | # /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT |
进入/usr/local/nginx/sbin目录,启动nginx:
1 | # cd sbin/ |
此时通过 http://公网ip:80
访问看到如下图
配置nginx服务器路由
为hexo创建一个部署目录/home/www/hexo:
1 | # mkdir -p /home/www/hexo |
打开usr/local/nginx/conf/nginx目录下的nginx.conf配置文件:
注:若有内容莫名其妙乱入,使用向上向下键移动即可
1 | vim /usr/local/nginx/conf/nginx.conf |
按 i
键由命令模式切换到编辑模式,修改在http{}块内的server块内容
1 | ··· |
按 ESC
输入 :wq
保存退出
命令 | 说明 |
---|---|
:wq! | 强制保存退出 |
:q | 放弃修改退出 |
:set nu | 显示行数 |
:ctrl+u/d | 半屏滚动 |
:ctrl+f/b | 全屏滚动 |
安装
安装node.js:
1 | # cd ~ |
安装git:
1 | # yum install git |
打印出版本号即安装成功:
1 | # node -v |
git配置
创建git用户,会自动创建 /home/git
目录
1 | # useradd git |
修改git用户的权限:
1 | # chmod 740 /etc/sudoers |
打开文件:
1 | # vim /etc/sudoers |
按 i
键由命令模式切换到编辑模式,在 root ALL=(ALL) ALL
下行添加 git ALL=(ALL) ALL
按 ESC
输入 :wq
保存退出
保存退出后改回权限:
1 | # chmod 400 /etc/sudoers |
设置git用户的密码:
1 | # sudo passwd git |
创建git仓库并新建post-receive钩子文件:
1 | # cd ~ |
按 i
键由命令模式切换到编辑模式,添加 git --work-tree=/home/www/hexo --git-dir=/home/git/hexo.git checkout -f
按 ESC
输入 :wq
保存退出
目的让钩子文件删除 /home/www/hexo
目录下原有的文件,然后从 hexo.git
仓库 clone
新的博客静态文件到 /home/www/hexo
目录下
授予钩子文件可执行权限:
1 | # chmod +x ~/hexo.git/hooks/post-receive |
最后输入git密码
切换到git用户创建.ssh目录存放公钥:
1 | # su git |
本地安装
安装Node.js:
下载速度太慢的话可以去这里node中文网
安装过程:略,默认安装
按 win + r
在弹出窗口输入 cmd
打开命令提示符,然后依次输入 node -v
、 npm -v
1 | C:\Users\Administrator>node -v |
出现版本号说明安装成功
安装git:
安装过程:略,默认安装
桌面右键出现下图红框内容说明安装成功
安装hexo:
新建一个名为hexo的文件夹并进入,右键选择 Git Bash Here
:
(Git复制键是 Ctrl+insert
粘贴键是 Shift+insert
)
1 | $ npm install -g hexo-cli #安装hexo |
注:我遇到 bash: npm: command not found
报错,不过我关机后再开机就恢复正常了
打开浏览器输入 http://localhost:4000/
出现下图
设置Git用户、邮箱:
1 | $ git config --global user.name "用户名" |
生成ssh密钥:
1 | $ ssh-keygen |
我的在 C:/Users/雨园/.ssh
目录下
设置私钥权限:
1 | $ cd ~/.ssh |
使用filezilla上传 id_rsa.pub
公钥:
将 id_rsa.pub
内容复制到新建的 authorized_keys
文件中
切回服务器
设置文件权限:
1 | $ cd ~/.ssh |
确保设置了正确的SELinux上下文:
1 | $ restorecon -Rv ~/.ssh |
重启服务器,启动nginx服务:
1 | # cd /usr/local/nginx/sbin |
切回本地
打开hexo站点配置文件 _config.yml
,最下面添加:
1 | deploy: |
注意 :
后接一个 空格
,保存退出
验证ssh连接服务器:
1 | $ ssh git@111.11.1.11 |
出现git用户即成功
部署到腾讯云:
1 | $ hexo clean #清除缓存文件 |
通过 http://公网IP:80/
可以访问个人hexo博客
解析域名访问博客:
微信 腾讯云助手
小程序 > 我的域名
> 解析
> 添加解析
:
1 | 记录类型 A |