Установка и настройка WordPress

Полный гайд по установке WordPress на Ubuntu с Docker: от структуры папок до настройки прав доступа для пользователя.

В этой статье описывается процесс установки и настройки 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