Используемые термины: CMS , WordPress , Docker , Linux , MariaDB .
В данной инструкции мы рассмотрим процесс работы с WordPress из командной строки. Эти навыки будут полезны для автоматизации каких-либо процессов, связанных с данной CMS. Наша работа будет выполняться в системе семейства Linux. Сервисы мы будем поднимать внутри контейнеров.
Подразумевается, что на нашем компьютере уже установлен Docker с docker-composer. В противном случае, читаем инструкцию Установка Docker на Linux .
На момент написания инструкции, в samples docker docs можно было найти пример композера для развертывания контейнеров mysql и wordpress. Его мы возьмем за основу, но поменяем некоторые параметры, и кое-что добавим.
Предположим, что наш проект будет хранится относительно каталога /opt/wordpress. Создадим его:
mkdir /opt/wordpress
После создадим композер-файл:
vi /opt/wordpress/docker-compose.yml
version: «3.9»
services:
db:
image: mariadb:latest
hostname: wp_database
container_name: wp_database
volumes:
— db_data:/var/lib/mysql
restart: always
environment:
TZ: «Europe/Moscow»
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
wordpress:
depends_on:
— db
image: wordpress:latest
hostname: wp_app
container_name: wp_app
volumes:
— wordpress_data:/var/www/html
ports:
— «8000:80»
restart: always
user: www-data
environment:
TZ: «Europe/Moscow»
WORDPRESS_DB_HOST: ${DB_HOST}
WORDPRESS_DB_USER: ${DB_USER}
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
WORDPRESS_DB_NAME: ${DB_NAME}
cli:
depends_on:
— db
— wordpress
image: wordpress:cli
hostname: wp_cli
container_name: wp_cli
volumes:
— wordpress_data:/var/www/html
restart: «no»
user: www-data
environment:
TZ: «Europe/Moscow»
WORDPRESS_DB_HOST: ${DB_HOST}
WORDPRESS_DB_USER: ${DB_USER}
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
WORDPRESS_DB_NAME: ${DB_NAME}
volumes:
db_data: {}
wordpress_data: {}
* в файле мы описали 3 контейнера, 2 из которых будут запускаться и работать постоянно — для wordpress и СУБД, а cli мы будем запускать по необходимости. Обратите внимание, что в качестве значений для настройки подключения к базе данных мы указали переменные — их мы зададим через .env файл.
** рассмотрим некоторые параметры:
Создаем файл .env, в котором перечислим переменные, необходимые для композера:
vi /opt/wordpress/.env
DB_HOST = db
DB_USER = wordpress
DB_PASSWORD = wordpress
DB_NAME = wordpress
* в данном примере мы оставили значения из примера официальной документации. В рабочей среде стоит задать более стойкий пароль ( DB_PASSWORD ). DB_HOST должен соответствовать имени сервиса с контейнером СУБД.
Переходим в каталог с композер-файлом и запускаем проект:
cd /opt/wordpress
docker-compose up -d
Система загрузит нужные образы и запустит контейнеры. В итоге, мы должны увидеть:
…
Creating wp_database … done
Creating wp_cli … done
Creating wp_app … done
Убедимся, что наши контейнеры запущены:
docker ps | grep wp_
Мы должны увидеть 2 контейнера — wp_app и wp_database .
И так, мы подняли на внешнем порту 8000 веб-приложение с установленным CMS WordPress и СУБД MariaDB, которая принимает запросы по внутреннему порту 3306. Попробуем перейти на страницу <IP-адрес сервера>:8000 — должна открыться страница установки WordPress.
Если мы обращаемся к серверу по сети, и на нем используется брандмауэр, то необходимо будет открыть порт 8000. В зависимости от утилиты управления фаерволом, наши команды будут отличаться.
а) IPTABLES (как правило, на системах deb):
iptables -A INPUT -p tcp —dport 8000 -j ACCEPT
б) Firewalld (как правило, на системах rpm):
firewall-cmd —permanent —add-port=8000/tcp
firewall-cmd —reload
Но мы не будем выполнять установку через веб-интерфейс. Воспользуемся командной строкой.
Для завершения установки нам нужно выбрать предпочитаемый язык и прописать настройки для доступа к базе данных. После будут созданы необходимые таблицы в базе данных. Чаще всего, это делают в веб-интерфейсе, но мы рассмотрим вариант работы с wp-cli.
Завершаем установку системы управления следующей командой:
docker-compose run —rm cli wp core install —url=remontka.local:8000 —title=»remontka Local Blog» —admin_name=admin —admin_email=admin@remontka.local —skip-email —admin_password=password
* в данном примере мы запустили наш контейнер с wp-cli и дали команду на установку CMS со следующими опциями:
Установим русский язык:
docker-compose run —rm cli wp language core install ru_RU
И активируем его:
docker-compose run —rm cli wp language core activate ru_RU
Система развернута. Попробуем перейти на страницу <IP-адрес сервера>:8000 — должна открыться страница сайта.
Рассмотрим примеры работы с плагинами из командной строки при помощи WP-CLI.
Установить плагин:
docker-compose run —rm cli wp plugin install «Classic Editor»
Активировать плагин:
docker-compose run —rm cli wp plugin activate «classic-editor»
* обратите внимание на другое название при обращении к плагину.
Деактивация:
docker-compose run —rm cli wp plugin deactivate «classic-editor»
Удаление:
docker-compose run —rm cli wp plugin delete «classic-editor»
Полный список команд можно посмотреть на официальном сайте .
Отдельно приведем некоторые дополнительные команды, которые могут быть полезны в процессе работы.
Остановка всех сервисов из композер-файла:
docker-compose down
Остановка всех сервисов из композер-файла с удалением данных:
docker-compose down —volumes
Мы будем писать только команду для утилиты wp без запуска ее через докер.
Изменить страницу сайта:
wp option set siteurl https://remontka.com:8000
Изменить домашнюю страницу сайта:
wp option set home https://remontka.com:8000
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…