前段时间,将hexo博客一直部署在GitHub上,最近放寒假了,有点时间,就用学生优惠买了一个腾讯云轻量服务器,一年112,又加上域名买了5年120,加起来大出血。😭
不过这也是我好久一来一直想要做的事情了,今天捣鼓了不少时间,了解了一些Linux的指令,但最终还是成功部署。
我的服务器是:腾讯云的轻量级服务器,自带宝塔Linux面板
第一步:安装并配置git仓库
部署到Linux服务器上的的逻辑实际上就是将本地的hexo部署到服务器上的git仓库中去,然后使用git的hooks将静态网页自动拉取到服务器中的网站资源网站中。
1.1 服务器安装git
1 | yum install git |
你可以先运行以下代码查看你是否有git。
1 | git --version |
有的话会如下显示:
1.2 配置git用户并赋予权限
输入以下代码添加githexo用户
1 | adduser githexo |
这里需要注意的是如果你服务器里本来就有git,没有重新安装git,这里建议最好不要创建git用户名,因为本地可能已经有了一个git,如果这里再使用git为用户名,后面从root切换用户的时候,可能就会直接进入命令行,而不是切换用户。
添加用户后,需要为用户添加权限,先输入以下代码进入到添加权限界面:
1 | chmod 740 /etc/sudoers |
在其中输入 i 进入 insert 模式 ,找到 lighthouse ALL=(ALL) ALL NOPASSWD: ALL,在其下方加入一行 githexo ALL=(ALL) ALL,如下图:
- 有可能你的是sudoers文件中是 root ALL =(ALL) ALL NOPASSWD: ALL
- 可以看到图片中,我另外两个用户,其中的git用户就是我第一次尝试的时候设置的用户名,出了一点问题。
按下 ESC ,输入 :wq
,先按:
,再按wq
。
这时vim语法,感兴趣可以去了解以下,不懂得,照着做就行。
然后再输入以下代码,把文件设为只读:
1 | chmod 400 /etc/sudoers |
1.3 设置githexo用户密码
1 | sudo passwd githexo |
- 值得注意的是,当你输入了这行代码之后,下一行会出现
new passward
,你输入的密码是不会显示的,所以要按准了,输入完了点回车,会让你再输入一遍。
如果你也是宝塔面板的话,到这里你可以去宝塔面板-文件-根目录-home目录下,看到多了一个githexo文件夹。
1.4 服务器添加ssh密钥,连接本地
这一步就是为了将你本地电脑上的密钥保存到服务器上,便于一会连接。这个密钥你电脑是有的,一般存储在C:\users\用户名\.ssh
文件夹下的id_rsq.pub文件中。
- 如果你之前曾经部署到GitHub上,那肯定是有这个密钥的,如果没有的话,那么可以去看一下相关的教程。
输入以下命令添加ssh密钥
1 | su githexo #切换到githexo用户 |
第三行代码,也像之前的vim那样,按i进入编辑模式粘贴完按 Esc 键退出编辑模式,输入 :wq
保存退出。
修改权限
1 | chmod 755 ~ |
接下来,在本地打开一个终端,以 ssh 的方式登录云服务器
1 | ssh -v githexo@你的 ip 地址 |
1.5 创建git仓库和网站资源目录
创建一个 git 仓库,新建一个 post-receive 文件,用来存储本地的提交。
1 | su root #切换回root用户 |
然后创建一个存放网站资源的文件夹,用于存放hexo生成的静态网站资源
1 | cd .. #返回上一级 |
1.6 通过hooks自动拉取
通过git的hooks自动拉取仓库文件到网站资源文件文件夹
在 hexoblog.git/hooks 文件夹下创建一个 post-receive 钩子,把提交到 git 仓库的文件同步到 home/projects/hexoblog文件夹中
1 | cd /githexo/hexoblog.git/hooks |
- 同样先按i进入编辑模式,然后输入以下代码,按ESC退出编辑模式,输入
:wq
保存
在 post-receive 文件中输入以下代码
1 | !/bin/bash |
授予 post-receive 文件可执行权限
1 | chmod +x /home/git/blog.git/hooks/post-receive |
服务端的设置就已经完成了,接下来是修改本地hexo的配置。
第二步:修改本地hexo的部署目录
打开 hexo 的配置文件 _config.yml,找到以下代码,修改部署位置。
1 | deploy: |
保存配置文件,在hexo文件夹中,打开终端,hexo一键三连。
1 | hexo clean |
第三步:添加域名
3.1 创建二级域名并解析(可选)
这一步是为了添加一个子域名给你的博客网站,你也可以直接使用本来的域名来部署博客网站。我这里是添加了一个blog的子域名。
首先,进入到腾讯云中的云解析DNS界面,并点击右侧的“解析”:
其次,点击“添加记录”。在“主机记录”中填写次级域名,“记录值”填写你的服务器的ip地址:
3.2 添加站点
- 在“域名”一栏,填写刚刚创建的域名“blog.你的域名”。
- 在“根目录”中填写之前创建的博客资源存放目录“/home/projects/hexoblog”
3.3 添加ssl证书
添加ssl证书是为了让网站能够以“https”开头,不然会被标识为不安全。
点击右侧“设置”-“SSL”-“Let’s Encrypt”,选中上一步中添加的子域名,点击“申请”。
申请SSL证书之后,回到“当前证书”,开启“强制HTTPS”
以上就是所有内容,现在你就可以使用域名来访问你的博客网站了。