В этой статье описывается процесс установки и настройки WordPress на Ubuntu с использованием Docker. WordPress — это популярная CMS для создания сайтов и блогов, которая позволяет легко управлять контентом, темами и плагинами.
Шаг 1: Подготовка структуры папок
mkdir -p /mnt/hdd/docker/wordpress
cd /mnt/hdd/docker/wordpress
Структура папок должна соответствовать тем, что указаны в docker-compose.yml.
Шаг 2: Создание docker-compose.yml
services:
# База данных для WordPress
wordpress-db:
image: mariadb:10.11
container_name: wordpress-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: NiL224362everus!
MYSQL_DATABASE: wordpress
MYSQL_USER: nileverus
MYSQL_PASSWORD: NiL224362everus!
volumes:
- ./db:/var/lib/mysql
networks:
- wordpress-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 20s
retries: 10
# WordPress
wordpress:
image: wordpress:latest
container_name: wordpress
restart: unless-stopped
ports:
- "8081:80"
depends_on:
wordpress-db:
condition: service_healthy
environment:
WORDPRESS_DB_HOST: wordpress-db
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: nileverus
WORDPRESS_DB_PASSWORD: NiL224362everus!
WORDPRESS_TABLE_PREFIX: wp_
WORDPRESS_DEBUG: 0
volumes:
- ./html:/var/www/html
- ./uploads:/var/www/html/wp-content/uploads
- ./themes:/var/www/html/wp-content/themes
- ./plugins:/var/www/html/wp-content/plugins
networks:
- wordpress-network
# phpMyAdmin для управления БД (опционально)
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: wordpress-phpmyadmin
restart: unless-stopped
ports:
- "8082:80"
environment:
PMA_HOST: wordpress-db
PMA_PORT: 3306
UPLOAD_LIMIT: 1000M
depends_on:
- wordpress-db
networks:
- wordpress-network
networks:
wordpress-network:
driver: bridge
Шаг 3: Запуск WordPress
cd /mnt/hdd/docker/wordpress
docker compose up -d
После запуска откройте http://ваш-ip:8081 для доступа к WordPress.
phpMyAdmin (опционально): http://ваш-ip:8082
Шаг 4: Настройка прав доступа
sudo chown -R 33:33 /mnt/hdd/docker/wordpress/html
sudo chown -R 33:33 /mnt/hdd/docker/wordpress/uploads
sudo chown -R 33:33 /mnt/hdd/docker/wordpress/themes
sudo chown -R 33:33 /mnt/hdd/docker/wordpress/plugins
sudo find /mnt/hdd/docker/wordpress -type d -exec chmod 755 {} \;
sudo find /mnt/hdd/docker/wordpress -type f -exec chmod 644 {} \;
Шаг 5: Увеличение лимита загрузки WordPress
nano /mnt/hdd/docker/wordpress/docker-compose.yml
В секции volumes для сервиса wordpress добавьте:
volumes:
- ./html:/var/www/html
- ./uploads:/var/www/html/wp-content/uploads
- ./themes:/var/www/html/wp-content/themes
- ./plugins:/var/www/html/wp-content/plugins
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
content/uploads.ini:
upload_max_filesize = 10G
post_max_size = 10G
memory_limit = 512M
max_execution_time = 3600
max_input_time = 3600
max_file_uploads = 100
cd /mnt/hdd/docker/wordpress
docker compose down
docker compose up -d
Шаг 6: Управление WordPress
# Остановить
cd /mnt/hdd/docker/wordpress
docker compose down
# Запустить
docker compose up -d
# Перезапустить
docker compose restart
# Посмотреть логи
docker compose logs -f
# Войти в контейнер
docker exec -it wordpress bash





