19 ноември, 2019

Намалете опасенията за сигурността, като направите огледален WordPress блог чрез страниците GitLab или GitHub. Много настройки са нужни да се създаде блог на WordPress, ако се нуждаете от уеб базиран CMS с WYSIWYG редактор. Нежеланият страничен ефект от нещата, които работят добре, е, че блогът е създал много съдържание с течение на времето. Това означава, че редовно се актуализира WordPress, за да се предпази от еклоатиране, което се случва често.

Друг вариант за блог е преминаването към Hugo, което е сравнително лесно и тогава блогът може да бъде хостнат на GitLab. Но да се извлече цялото съдържание и да го превърне в Markdown e много работа. Има автоматизирани скриптове, но не работят перфектно. Ръчното актуализиране на всички публикации не е от нещата, което искате да направите.

Може да продължим да поддържаме WordPress сървъра, но така да го настроим, че да публикува от статично огледало. С този трик ще е възможно да се обслужва с GitLab Pages (или GitLab страници, ако искате). Това ще позволи да автоматизираме Let’s Encrypt подновявания на сертификати, както и да премахнем опасенията за сигурността, свързани с хостинг на WordPress сайт. Единственият проблем ще е, че коментарите ще спрат да работят

Ето го и решението:

  • Хоствайте сайта на WordPress на URL адрес. В този пример ще използваме http://private.localconspiracy.com (въпреки че този сайт всъщност е създаден с Pelican).
  • Настройте хостинг в GitLab Pages за публичния URL адрес https://www.localconspiracy.com.
  • Добавете задание cron, което определя кога последната дата се различава между двата URL адреса. Ако датите за изграждане се различават, огледайте версията WordPress.
  • След огледалото с wget актуализирайте всички връзки от „частната“ версия до „публичната“ версия.
  • Направете го, за да публикувате новото съдържание.

Това са двата скрипта:

check-diff.sh
#!/bin/bash

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

PUBDATE="$(curl -v --silent https://www.localconspiracy.com/feed/ 2>&1|grep lastBuildDate)"
if [ "$ORIGINDATE" !=  "$PUBDATE" ]
then
  /home/doc/repos/localconspiracy/mirror.sh
Fi
mirror.sh:
#!/bin/sh
cd /home/doc/repos/localconspiracy
wget \
--mirror \
--convert-links  \
--adjust-extension \
--page-requisites  \
--retry-connrefused  \
--exclude-direec sed -i -e 's|http://private.localconspiracy|https://www.localconspiracy|g' {} \;
find ./public/ -type f -exec sed -i -e 's|http://www.localconspiracy|https://www.localconspiracy|g' {} \;
git add public/*
git commit -m "new snapshot"
git push origin masterctories=comments \
--execute robots=off \
http://private.localconspiracy.com
git rm -rf public/*
mv private.localconspiracy.com/* public/.
rmdir private.localconspiracy.com
find ./public/ -type f -ex

Това е! Сега, когато се промени блогът, в рамките на 15 минути, сайтът се отразява на статична версия и се придвижва до страниците на GitLab.

Тази концепция може да бъде разширена още малко, ако искате да работите с WordPress локално. В този случай няма да имате нужда от сървър, в който да бъде домакин вашият WordPress блог. Можете просто да го стартирате на локална машина. В този сценарий няма шанс блогът ви да бъде манипулиран. Използвайте този подход, за да имате сайт на WordPress, хостван на страниците на GitLab.

Източник: OpenSource

Тагове: ,