У меня и свои сайты всегда были на Wordpress, и кучу проектов на них вёл и веду. Да и вообще, большинство блогов сделаны на WP. Это реально удобный движок. Ему приписывают проблемы с безопасностью и общую тормознутость. Но это всё мимо кассы претензии. Проблемы с безопасностью обычно в плагинах, не надо ставить всё подряд. А вопросы производительности хорошо решаются кэшированием. Контентные сайты вообще полностью в кэш загоняются и напрямую статические html отдаёт веб сервер. И всё это средствами самого движка WP. Удобно и просто в настройке.
У меня давно подготовлен набор инструментов для быстрого запуска и настройки этого движка через Docker Compose. Была когда-то давно серия статей на сайте, но они устарели, не обновлялись, поэтому ссылки на них не даю. Я на днях обновил весь этот стек и делюсь с вами информацией.
У меня будет 4 контейнера:
▪️mysql:8.4 - база данных;
▪️nginx:latest - веб сервер;
▪️wordpress:php8.3-fpm - образ с php-fpm от wordpress;
▪️wordpress:cli - консольный инструмент для управления конфигурацией wordpress.
Отдельно остановлюсь на wp-cli. Это консольная утилита, с помощью которой можно автоматизировать управление Wordpress. С её помощью можно делать как преднастройки новой установки, так и управлять уже работающим сайтом. Последнее я покажу в следующей заметке, а сейчас займёмся начальной установкой.
Я положил все необходимые файлы в отдельный репозиторий. Сделал это, чтобы вы могли их скопировать из этой заметки. Я не буду поддерживать и развивать этот проект, поэтому и с выбором репозитория не заморачивался:
# git clone https://gitflic.ru/project/serveradmin/wordpress.git# cd wordpressВ директории 3 файла:
- docker-compose.yml
- nginx_default.conf
- configure-wp.sh
С первыми двумя всё стандартно, не буду на них задерживаться. Остановлюсь подробно только на последнем файле. Это bash скрипт для wp-cli, который:
1. Устанавливает WP с заданной настройкой url и учёткой админа.
2. Устанавливает новую тему и удаляет стандартные.
3. Устанавливает и удаляет плагины.
4. Устанавливает русский язык.
Показал эти действия для примера. Туда же можно добавить какие-то материалы в виде xml файлов и через импорт их туда загнать. Это может быть удобно, если вы на потоке создаёте или тестируете какие-то темы, плагины с набором данных. Делается это примерно так:
curl -O https://raw.githubusercontent.com/manovotny/wptest/master/wptest.xmlwp import wptest.xml --authors=createЭти команды надо добавить в конец configure-wp.sh. Этот файл - простой набор консольных команд с wp-cli.
Перед запуском измените имя домена в
nginx_default.conf и configure-wp.sh. А также название сайта, имя пользователя и пароль в configure-wp.sh. Больше ничего менять не надо. Запускаем:# docker compose upЧерез пару минут получите настроенный сайт wordpress с заданными параметрами и наполнением. В директориях ./db и ./wp будут лежать файлы СУБД и сайта. Возможно вам будет удобнее хранить их в volumes. Мне в директории как-то привычнее.
Если вы разработчик и работаете с Wordpress, то просто клонируйте этот проект, меняйте url, настраивайте CMS через конфиг wp-cli и всегда будете иметь возможность очень быстро развернуть свой проект в любом месте.
Данный проект не предусматривает настройку TLS, так как я подразумеваю, что входящие соединения приходят куда-то на прокси и оттуда уже летят на эти контейнеры, либо это локальный запуск для разработки. Для запуска в работу в таком виде нужно будет добавить ещё что-то для настройки сертификатов. Можно взять другой образ с Nginx, где это уже сделано. Таких образов полно. Например, linuxserver/swag. Кстати, интересный контейнер. Можно о нём отдельно рассказать.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wordpress

