Есть у меня один давно сделанный сайт на wordpress, особо там ничего не меняю и хотелось его давно сделать статикой, чтобы повысить безопасность, и сохранить возможность менять его через wordpress. Вот все не доходили руки. А тут в рамках изучения Docker, GitHub и тому подобным. Так вот какое пришло решение. =)
Шаги
— ставим Docker Desktop на ПК с WSL2
— ставим WordPress в Docker Desktop используя docker-compose
— переносим сайт с хостинга к себе в Docker Desktop
— делаем статику через плагин simply-static
— публикуем на GitHub Pages, на свой домен
профит, не убиваемый статичный сайт =) с возможностью локального редактирования на своем ПК в WordPress работающим в Docker Desktop
Ставим Docker Desktop на ПК с WSL2
есть отличная статья по установки WSL2 на ПК,
скачиваем и ставим https://hub.docker.com/editions/community/docker-ce-desktop-windows
Делаем статику через плагин simply-static
Ставим плагин simply static
В общей настройки пропишем реальный домен на который переносим
Destination URLs — www.tangoargentino.ru
Delivery Method — /var/www/html/tangoargentino.github.io/ — в локальную директорию тут будут наши артефакты
Temporary Files Directory — /var/www/html/wp-content/plugins/simply-static/static-files/ — сделаем папку если нет для темпа, она будет сама очищается при запуске и хранит один темп.
Переведем Cron в другой режим
Если запустим simply-static в Docker в логах видно только это
1 |
[class-ss-plugin.php:260] Received request to start generating a static archive |
это не работает cron.
Решение добавить
1 2 |
define ('ALTERNATE_WP_CRON', true); define( 'DISABLE_WP_CRON', true ); |
перезапустить контейнер
После в диагностики станет Checking if WordPress cron is available and running — fail — это нормально.
Запускаем генерацию и получим результат в папке контейнера /var/www/html/tangoargentino.github.io/
У нас на диске C:\Docker\tangoargentino.ru\www\tangoargentino.github.io
Все теперь мы готовы отправлять эти артефакты статического сайта wordpress в репозиторий.
Публикуем на GitHub Pages, на свой домен
Первичная настройка репозитория
Делаем новый репозиторий с именем tangoargentino.github.io
Я использую Git extensions как клиент гита
Склонируем репозиторий в путь C:\Docker\tangoargentino.ru\www\ он как раз займет нужную папку.
Закомитим все файлы.
Пропишем CNAME в DNS — как www CNAME akepman.github.io.
Настроим свой домен на стороне github pages, как www.tangoargentino.ru
Подождем обновления DNS.
и все готово у нас рабочий статический сайт на wordpress на бесплатном хостинге.
Схема обновления сайта будет такая
— локально вносим правки в wordpress
— когда все правки сделаны, генерируем статику
— в Git extensions комитим изменения и сайт обновлен в github pages
Кроме Github Pages можно публиковать на Cloudflare Pages, Vercel, Netlify, AWS или любой другой хостинг.