Давайте развернем WordPress в Docker на Ubuntu, используя Nginx в качестве веб-сервера, MariaDB в качестве базы данных и Redis для кэширования. Для этого мы будем использовать docker-compose
, чтобы упростить процесс управления множеством контейнеров.
Перед началом работы
Убедитесь, что Docker и Docker Compose установлены на вашем сервере Ubuntu. Вы можете проверить их наличие, выполнив:
docker --version docker-compose --version
Если они не установлены, установите их с помощью следующих команд:
sudo apt update sudo apt install docker.io sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Шаг 1: Создание файла docker-compose.yml
Создайте файл docker-compose.yml
в вашем рабочем каталоге. Этот файл будет содержать все необходимые инструкции для запуска четырех сервисов: wordpress
, nginx
, db
(MariaDB), и redis
.
version: '3.1' services: wordpress: image: wordpress:php7.4-fpm volumes: - wordpress_data:/var/www/html environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress depends_on: - db - redis nginx: image: nginx:alpine ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro - wordpress_data:/var/www/html:ro depends_on: - wordpress db: image: mariadb volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress redis: image: redis:alpine volumes: wordpress_data: db_data:
В этом файле мы определяем четыре сервиса и два тома:
- wordpress: Контейнер с PHP-FPM для обработки PHP-скриптов WordPress.
- nginx: Веб-сервер, который будет обслуживать статические файлы и перенаправлять запросы PHP в контейнер WordPress.
- db: Сервис базы данных MariaDB.
- redis: Контейнер Redis для кэширования объектов WordPress.
Шаг 2: Создание конфигурации Nginx
Создайте файл nginx.conf
с указанными выше настройками. Этот файл настраивает Nginx на прослушивание порта 80 и обработку запросов к WordPress.
Шаг 3: Запуск контейнеров
Из папки, содержащей docker-compose.yml
, запустите контейнеры:
sudo docker-compose up -d
Опция -d
запускает контейнеры в фоновом режиме.
Шаг 4: Проверка работоспособности
Откройте веб-браузер и перейдите по адресу http://localhost. Вы должны увидеть начальный экран установки WordPress.
Шаг 5: Настройка Redis для WordPress
Для использования Redis вам нужно будет установить плагин, например, Redis Object Cache. После установки и активации плагина перейдите в настройки плагина и укажите хост Redis, который в нашем случае будет redis
, так как мы использовали это имя в docker-compose.yml
.
Дополнительные рекомендации
- Безопасность: Используйте сложные пароли и обязательно измените их в
docker-compose.yml
перед развертыванием в продакшн. - Резервное копирование: Регулярно выполняйте резервное копирование ваших томов Docker, чтобы предотвратить потерю данных.
- Обновления: Регулярно обновляйте образы Docker и следите за обновлениями WordPress, чтобы ваш сайт был защищен от уязвимостей.
Следуя этим инструкциям, вы сможете успешно развернуть WordPress на сервере Ubuntu с использованием Docker, Nginx, MariaDB и Redis.