备份WP到github

备份WP到github

怕站点由于不可抗拒的因素挂掉,因此将wordpress导出为静态页面,并且备份到github pages上面,作为备份站点源,如果网站挂掉,还能够继续访问。

安装插件

需要用到这个Simply Static插件,将wordpress转化为静态页面 。pro版本的直接集成github插件,能够设置一下就自动导入到github pages,可惜我看了一下,一年要99刀,永久要499刀,这也太tm贵了,因此贫穷的我们只能自己想办法了。

安装完后,需要设置一下,在Simply Static插件的settings-general设置一下Delivery Method,选择Local Directory,即保存静态界面到指定的目录,目录需要提前创建好。

simple-static设置

在settings-advance里面设置一下Temporary Files Directory的位置,不要放在wordpress路径下面,这样子使用UpdraftPlus等插件备份的时候会把这些静态文件也打包进去,会使得体积变大。

其他设置就按默认的。

创建Github仓库

首先要有个github账户,这个应该都能解决(gitee因为开通gitee pages需要实名认证,正好最近国庆,审核停了,并且因为免费版不支持自定义域名,所以后续有需求再说)。

创建一个仓库,那么我直接创建了一个自己域名的项目仓库。

生成静态文件

在生成静态文件之前,有几点需要注意:

  1. 文章的url是中文的会有问题,因为他生成的url的是经过编码的,不是中文的,所以不能直接查看。
  2. 如果你的url是英文的,那么就没有上述问题,但是涉及的面比较广,文章的url、说说的url、分类的url、标签的url等等全部都要改成英文的,比较麻烦。

虽然有上述的问题,但我找到能够曲线救国的方式,就是如果你的文章里面有纯中文的引用,那么它生成静态文件的时候就会有中文的目录结构,所以我就单独做了一个站点索引网站,里面都是中文的引用,格式类似这样,里面url的链接一定要中文的!

[站点索引网站](https://szx.life/站点归档索引/)

点击插件的Generate的GENERATE STATIC FILES,过个一两分钟就能生成静态文件了。

这样子就会有两份重复的目录生成,一个是经过编码的url,一个是中文的目录,如下图所示。

静态文件生成

经过我的探索,发现可以不生成%文件,只需要在settings-exclude里面添加URLs to Exclude,可以把含有%的网站去除掉,经过此操作,页面直接砍了不少。但注意了,站点归档索引的别名一定是要英文的,可以在WP的文章快速编辑里面设置,否则这篇文章也被忽略了,就没有中文url了。

# 去除说说下面的详情界面,因为说说有个index.html就行了,不用查看详细 
https://szx.life/shuoshuo/[^\s]*/
# 去除tag的界面,因为tag太多了,导致很多界面都是tag的,但正经人谁看tag
https://szx.life/tag/[^\s]*
# 去除 202*年某月的具体某日界面,只保留月份的就行了
https://szx.life/202\d/\d\d/\d\d
# 去除所有带有%号的界面,但这步需要谨慎
https://szx.life/.*[%].*

在之前设置的Local Directory目录下,使用以下的命令:

# 初始化git
git init
# 删除所有编码过的url目录,更新:去除
# rm -rf *%*
# git添加所有文件
git add .
# git提交
git commit -m "1"
# 切换到main分支
git branch -M main
# 添加远程仓库,这里改为你自己的仓库,这里的github是仓库的别名,可以自定义取别的
git remote add github https://github.com/szx741/szx.life.git
# 推送main分支到github仓库
git push -u github main

设置域名

github pages可以设置自定义的域名,在settings-pages里面,项目的默认地址是:你的名字.github.io/你的项目名称

当然我们要设置自己的域名了,因为有wordpress的人肯定有个域名了,国内备案过的域名,三级域名不需要再次备案了。例如我的域名szx.life,那么github.szx.life就不需要备案了,直接解析就能用了。首先先去你的dns域名解析,加入添加记录,主机记录添加要的前缀,我的前缀就是github,记录类型为CNAME,即解析到域名,记录值为github pages页面提供的,我的是szx741.github.io.,过几分钟后就会生效了,然后去github pages填写刚才域名就行了,如下图所示。

自定义域名

之后就能查看github.szx.life这个域名,看到生成的静态网站了。恭喜,到这你就成功了。

后续更新

由于github设置了自定义的域名,就会自动生成一个CNAME的文件,所以本地需要拉取一下。

git pull github main

接下来更新就差不多,点击插件生成静态文件,然后操作如下。

cd /home/ubuntu/code/backup_szx_life
# 每次生成静态文件都会重复生成,所以每次都要重新删除
#rm -rf *%*
# 可选,由于镜像点和源站点没有区别,为了区别,我把我的头像文件给替换了,换成黄四郎的“糟了,我成替身了”,这样就能区别两个站点,也算是一个彩蛋了。
cp huangsilang.webp wp-content/uploads/2021/07/huangsilang.webp
sed -i s/huangsilang.webp/huangsilang.webp/g `grep -rl huangsilang.webp --include="*.html" ./`
git add .
# 提交,为提交当天的日期
git commit -m "$(date +%Y-%m-%d)"
# 推送到远程仓库,如果有必要的话,可以加个-f强制推送
git push -u github main

CDN热备源站配置

CDN还能设置热备源站,以防万一源站崩了,就能够使用我们这个静态备份站点,这才算是达到了我们一开始真正的目的。源站地址和回源HOST都填写github.szx.life(大概,毕竟我这样子设置没问题)。

热备源站设置

然后你可以停止自己服务器上的nginx,这样子源站点就算崩了,然后他会确实使用github.szx.life这个镜像点,但是显示的域名还是szx.life,所以如果你没有做替身攻击的话(滑稽),很难区别出两者,甚至可以说几乎一模一样。

结语

ok,到此就全部完成了操作,非常的amazing啊,这个方法是我自己一个人琢磨出来的,如有雷同,也很正常,就是基操罢了。不过中文url那个还真是我观察出来的,因为我有些文章引用了另一篇文章,所以只有个别几个才会有中文文件夹,百思不得其解,最后终于被我观察出来了,哈哈哈。

这个方法呢,有几个缺点:

  1. 需要手动备份,不是自动化的备份。
  2. 添加了新的文章,需要及时添加链接到归档索引,否则生成的静态文章点击就是404。
  3. 插件不是从本地站点提取的网页信息,而是实打实的访问szx.life域名来提取所有的网页,那么我的CDN流量就会实打实的上去,几十M甚至上百M,非常的伤。一旦文章多起来的话,这个问题非常的蛋疼,可能需要关闭掉CDN,然后再生成,但越搞越麻烦。流量问题目前为止还不是大问题,因为我CDN流量还挺多的,而且没人访问我的网站,所以自己算一下什么时候进行一次备份就行了,可能两三周?或者文章发了10篇左右的时候?还得看自己的备份策略。

Gitee设置

gitee实名认证通过了,试一试gitee pages怎么样

# 添加gitee的仓库
git remote add origin https://gitee.com/xaotuman/szx.life.git
# 推送到gitee仓库
git push -u origin main

在gitee仓库的服务选择gitee pages,部署分支设置一下,我的是main分支,部署目录不填,强制使用HTTPS,然后部署。

但是由于Gitee pages个人不能更换域名,所以就会带有仓库名称,非常的蛋疼,例如我的:

https://xaotuman.gitee.io/szx.life

这时候要去插件的settings更改Destination URLs,使用相对路径 /szx.life/ ,这样子应该就能够访问了,但是我懒得弄了,毕竟github能更换域名,而且gitee pages也不会被百度收录。如果对网速要求比较严,或者github又间接性被墙,那么可以考虑换回到gitee上面。

已经删除了仓库。

git remote rm origin
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇