如何将 WordPress 博客发布到静态 GitLab Pages 上 | Linux 中国

2018 年 9 月 9 日 Linux中国
通过 GitLab 或 GitHub Pages 来提供一个 WordPress 镜像站点, 从而最小化安全问题。
-- Christopher Aedo

致谢
编译自 | 
https://opensource.com/article/18/8/publish-wordpress-static-gitlab-pages-site
 
 作者 | Christopher Aedo
 译者 | geekpi 💎💎💎共计翻译:798 篇 贡献时间:1778 天

通过 GitLab 或 GitHub Pages 来提供一个 WordPress 镜像站点, 从而最小化安全问题。

很久以前,我为一个家庭成员建立了一个 WordPress 博客。如今有很多选择,但是当时如果你需要一个带有所见即所得的编辑器的基于 Web 的 CMS,那么就没什么像样的的选择了。而一切运行良好的不幸的副作用是随着时间的推移该博客产生了很多内容。这意味着我要经常更新 WordPress 以防止不断出现的漏洞。

因此,当我决定劝说家人切换到 Hugo[1] 会相对容易,然后可以在 GitLab[2] 上托管博客。但是尝试提取所有内容并将其转换为 Markdown[3] 变成了一个巨大的麻烦。有自动脚本完成了 95% 的工作,但并不完美。手动更新所有帖子不是我想做的事情,所以最终,我放弃了试图移动博客。

最近,我又开始考虑这个问题,并意识到有一个我没有考虑过的解决方案:我可以继续维护 WordPress 服务器,但将其设置为发布静态镜像,并使用 GitLab Pages[4](或 GitHub Pages[5] ,如果你喜欢的话)提供服务。这能让我自动化 Let’s Encrypt[6] 证书续订并消除与托管 WordPress 站点相关的安全问题。然而,这意味着评论将无法使用,但在这种情况下感觉就像是一个小损失,因为博客没有收到很多评论。

这是我提出的解决方案,到目前为止似乎运作良好:

◈ 托管 WordPress 站点中的 URL 没有链接到或来自其他任何地方,以减少它被利用的几率。在此例中,我们将使用  http://private.localconspiracy.com(即使此站点实际上是使用 Pelican 构建的)。
◈ 将公共 URL  https://www.localconspiracy.com  托管到 GitLab Pages 上 [9]
◈ 添加  cron 任务 [10],确定两个 URL 之间的最后构建日期何时不同。如果构建日期不同,则镜像 WordPress 版本。
◈ 使用  wget 镜像后,将所有链接从“私有”更新成“公共”。
◈ 运行  git push 来发布新内容。

这是我使用的两个脚本:

check-diff.sh (cron 每 15 分钟调用一次):

   
   
     
  1. #!/bin/bash

  2. ORIGINDATE="$(curl -v --silent http://private.localconspiracy.com/feed/ 2>&1|grep lastBuildDate)"

  3. PUBDATE="$(curl -v --silent https://www.localconspiracy.com/feed/ 2>&1|grep lastBuildDate)"

  4. if [ "$ORIGINDATE" !=  "$PUBDATE" ]

  5. then

  6.   /home/doc/repos/localconspiracy/mirror.sh

  7. fi

mirror.sh

   
   
     
  1. #!/bin/sh

  2. cd /home/doc/repos/localconspiracy

  3. wget \

  4. --mirror \

  5. --convert-links  \

  6. --adjust-extension \

  7. --page-requisites  \

  8. --retry-connrefused  \

  9. --exclude-directories=comments \

  10. --execute robots=off \

  11. http://private.localconspiracy.com

  12. git rm -rf public/*

  13. mv private.localconspiracy.com/* public/.

  14. rmdir private.localconspiracy.com

  15. find ./public/ -type f -exec sed -i -e 's|http://private.localconspiracy|https://www.localconspiracy|g' {} \;

  16. find ./public/ -type f -exec sed -i -e 's|http://www.localconspiracy|https://www.localconspiracy|g' {} \;

  17. git add public/*

  18. git commit -m "new snapshot"

  19. git push origin master

就是这些了!现在,当博客发生变化时,在 15 分钟内将网站镜像到静态版本并推送到仓库,这将在 GitLab Pages 中反映出来。

如果你想在本地运行 WordPress[11],这个概念可以进一步扩展。在这种情况下,你不需要服务器来托管你的 WordPress 博客。你可以在本机运行它。在这种情况下,你的博客不可能被攻击利用。只要你可以在本地运行 wget,就可以使用上面的方法在 GitLab Pages 上托管 WordPress 站点。

这篇文章最初发表于 Local Conspiracy[12]。允许转载。


via: https://opensource.com/article/18/8/publish-wordpress-static-gitlab-pages-site

作者:Christopher Aedo[14] 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


登录查看更多
0

相关内容

WordPress 是一款开源、免费的博客程序,使用PHP语言开发,用户可以在支持PHP和MySQL 数据库的服务器上架设自己的独立博客。 官方网站: wordpress.org/
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
113+阅读 · 2020年5月24日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【阿里巴巴】 AI编译器,AI Compiler @ Alibaba,21页ppt
专知会员服务
44+阅读 · 2019年12月22日
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
19+阅读 · 2019年10月28日
用 GitLab 的 Merge Request 做代码评审
DevOps时代
4+阅读 · 2019年5月5日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
I2P - 适用于黑客的Android应用程序
黑白之道
30+阅读 · 2019年3月6日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
号称“开发者神器”的GitHub,到底该怎么用?
算法与数据结构
4+阅读 · 2018年3月29日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Advances in Online Audio-Visual Meeting Transcription
Arxiv
4+阅读 · 2019年12月10日
Conditional BERT Contextual Augmentation
Arxiv
8+阅读 · 2018年12月17日
Arxiv
8+阅读 · 2018年7月12日
Arxiv
3+阅读 · 2015年5月16日
VIP会员
相关资讯
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
19+阅读 · 2019年10月28日
用 GitLab 的 Merge Request 做代码评审
DevOps时代
4+阅读 · 2019年5月5日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
I2P - 适用于黑客的Android应用程序
黑白之道
30+阅读 · 2019年3月6日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
号称“开发者神器”的GitHub,到底该怎么用?
算法与数据结构
4+阅读 · 2018年3月29日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Top
微信扫码咨询专知VIP会员