本地hexo博客迁移至云服务器教程
迁移本地hexo博客至云服务器
序言
2023年了,近期终于入手一台云服务器练手,之前一直有将GitHub上的博客迁移到个人服务器的想法,一是为了加快打开速度, 二是为了缩短冗长的域名。因为网上没找到一篇特别详细的教程(有也大都是几年前发表的),就记录以下我迁移站点时踩过的坑。
虽然之前也搭建过一些靶场,但我本身对服务器配置并不是十分熟悉,每处排错令我困惑不已,但最后还是折腾出来了。这次体验也让我收获不少。作为小白练手是个不错的选择。希望永远有时间和经历折腾
配置准备:
1.能在本地顺利运行的hexo博客(网上教程很多)
2.一台服务器(我是一核2G)
3.一个心仪的域名
4.辅助软件(Xshell)
不知道这个网站能存活多久,没申请SSL证书,域名未备案,没搭防火墙可谓是buff拉满,因此仍将保留我的镜像站点以供访问https://byforacle.github.io/B1og/
好好好,在写这篇的时候已经被拿下了,光速出警,令人感慨
坐标9.18,搞定了域名备案和SSL证书,希望能平稳运行
接下来就将开始个人站点搭建之旅
本地部署
默认你现在已将拥有了一个至少能在本地正常运行的hexo博客,即已经安装了Nodejs
、Git
、Hexo
等环境
测试方法为打开终端,跳转到你博客的根目录
1 | hexo clean |
输入以上命令后访问本地的4000端口看到hexo界面即可 http://localhost:4000/
服务器登录
我阿里云服务器的系统为CentOS 7.9 64位
若你的系统为Ubuntu甚至Windows,命令应该有所改变
我们先用XShell远程连接阿里云服务器,若首次连接,账号密码可在阿里云控制台重置账号密码获取,主机名即公网IP,端口号默认为22,输入刚才得到的账号密码即可 应该不用贴图吧😓
登陆后切换到root账号
1 | sudo su root |
git账户 配置
安装 git
在终端里输入安装git
1 | yum install git |
等待一下就安装好了。中途会出现
1 | Is this ok [y/d/N]: |
输入 : y 回车即可,回显Complete!
即为安装成功
创建 git 账户并添加其权限(为以后实现自动部署到git仓库做准备)
1 | adduser git |
使用vim工具编辑/etc/sudoers
文件,这里简述一下本文用过的vim操作
打开文档后按i
进入编辑模式,完成后按esc
等待底部insert字样消失后输入:wq
退出即可
在绿色光标处添加配置
1 | git ALL=(ALL) ALL |
改回权限
1 | chmod 400 /etc/sudoers |
设置git账户密码
1 | sudo passwd git |
输入两次密码就设置成功了。注意,linux 下输入密码是不显示 **** 的,你直接输入,输完回车就行了。
切换至 git 用户,创建 ~/.ssh
文件夹和 ~/.ssh/authorized_keys
文件,并赋予相应的权限
1 | su git |
这里需要将本地的ssh公钥复制到authorized_keys文件中,这样可以让物理机无需账号密码即可连接到我们的服务器,若你已经用SSH方法将博客部署到GitHub,可在本地C:\Users\(你的用户名)\.ssh
路径下找到id_rsa.pub
文件,复制粘贴其中内容即可
接着,输入以下命令,赋予权限
1 | chmod 600 /home/git/.ssh/authorized_keys |
中间节点
到此处为止,可以说已经完成了一半,我们可以检验一下以上的操作有无生效,在本地Git终端中测试是否能免密登录,在电脑本地桌面,右键”Git Bash Here”,输入以下命令,其中 SERVER 填写自己的云主机 ip,执行输入 yes 后不用密码说明配置成功了。
1 | ssh -v git@SERVER |
回显Welcome to Alibaba Cloud Elastic Compute Service !
即为成功
创建仓库目录及相关配置
注意此时创建的目录即为你站点源码存放的位置,而我们后面用到的宝塔运维面板不支持将网站源码放在Linux敏感目录下,建议谨慎选择(或可以和我选择相同目录)
切换到root用户,在www目录下创建repo文件夹作为Git仓库目录
1 | sudo su root |
赋予权限
1 | chmod -R 755 /www/repo |
接下来创建 hexo 目录作为网站根目录,并赋予权限:
1 | mkdir /www/hexo |
接下来创建一个空白的 git 仓库
1 | cd /www/repo |
创建一个新的 Git 钩子,用于自动部署
在 /var/repo/hexo.git
下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。
1 | vim /www/repo/hexo.git/hooks/post-receive |
进入编辑模式,写入以下shell脚本
1 | #!/bin/bash |
修改权限:
1 | chown -R git:git /www/repo/hexo.git/hooks/post-receive |
到这里 Git 仓库已经搭建完毕了。
配置Nginx环境
在Linux安装和配置环境一直令人头疼,为了简化操作我们使用宝塔面板
进入宝塔面板官网找到Linux CentOs版本的下载命令(若你是其他系统,找到相对应的指令)
1 | yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec |
中途输入”y” 回车等待一会就好了。在执行结果最后会出现地址,用户名,密码等。
在本地浏览器访问地址,即可可视化地操作远程服务器,此时可能会遇到服务器未响应的问题,这是因为阿里云服务器默认不开启8888端口,在控制台配置安全组选项中打开该端口即可。
进入面板后可一键配置所需环境,选择左边那个套件(包括Mysql、Nginx、Php等等),其实我们只需要Nginx,手动下载也可
部署完成之后,点击网站,添加站点,填写你的域名,其他的不要改。
填写完之后提交,然后点击” 设置” > ” 配置文件”
1 | server |
保存,然后选择 “设置”-“网站目录”,将网站目录修改成以下,保存。
回到服务器终端,重启宝塔服务,使之生效。
1 | service bt restart |
本地repo设置
进入本地电脑 hexo 博客的根目录,编辑站点配置文件 _config.yml,找到 deploy和url,修改成以下
1 | # URL |
这时候可能出现权限问题,导致部署到 git 失败。在服务器终端输入以下命令即可:
1 | chown -R git:git /var/repo/ |
再次推送即可