Перенос существующего сайта на Docker

Вопрос или проблема

Я создал приведённый ниже файл docker-compose и использовал официальный образ WordPress для переноса моего сайта с общего хостинга на Docker. Несмотря на то что я использовал стандартный файл .htaccess и добавил exit; в index.php для тестирования, сайт на WordPress всё равно остаётся недоступным. Я также внес необходимые изменения в wp-config. Я не могу произвести дальнейшую отладку, пожалуйста, помогите.

version: '3.1'

services:

  wordpress:
    container_name: frix_wordpress
    build:
      context: .
      dockerfile: Dockerfile
    image: wordpress
    restart: always
    working_dir: /var/www/html
    
    depends_on:
      - db
    ports:
      - 8099:8082
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - .:/var/www/html
  db:
    container_name: frix_db
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

Похоже, вы перенаправляете неправильный порт. Таким образом, сайт должен быть доступен по адресу http://localhost:8080

    ports:
      - 8080:80

Ответ или решение

Для успешного переноса вашего сайта WordPress на Docker, рассмотрим следующие ключевые аспекты. Судя по предоставленной вами конфигурации, возможно, у вас возникли проблемы с настройкой портов, а также с некоторыми другими настройками. Давайте разберемся пошагово.

1. Настройка docker-compose.yml

Ваш файл docker-compose.yml имеет несколько небольших недостатков. Вам нужно убедиться, что порты правильно сопоставлены, и что вы используете правильные версии образов. Выглядит, что вы используете неправильные порты для доступа к WordPress. Ваш текущий код:

ports:
  - 8099:8082

на самом деле должен выглядеть так:

ports:
  - 8080:80

Этот код позволяет вам получить доступ к вашему сайту, используя http://localhost:8080.

2. Пример исправленного файла docker-compose:

Итак, вот исправленная версия вашего docker-compose.yml:

version: '3.1'

services:
  wordpress:
    container_name: frix_wordpress
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - ./wordpress:/var/www/html  # Путь к вашей директории WordPress
    depends_on:
      - db

  db:
    container_name: frix_db
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  db:

3. Проверка .htaccess и конфигурации WordPress

Если вы используете .htaccess, убедитесь, что ваш сервер поддерживает его. В образе WordPress должны быть включены модули Apache, такие как mod_rewrite. Вы можете протестировать доступ, временно добавив в файл index.php соответствующий код, например, exit;, чтобы проверить, работает ли Apache.

4. Настройка wp-config.php

Убедитесь, что в файле wp-config.php у вас указаны правильные параметры подключения к базе данных. Проверьте, что данные совпадают с теми, что указаны в docker-compose.yml.

5. Логи контейнеров

Если сайт по-прежнему недоступен, хорошо бы проверить логи контейнеров. Вы можете это сделать, выполнив команду:

docker-compose logs

Это поможет выявить возможные ошибки, которые могут проистекать из самого WordPress или базы данных MySQL.

6. Перезапуск Docker

После всех исправлений обязательно перезапустите контейнеры:

docker-compose down
docker-compose up -d

Заключение

Убедитесь, что все конфигурации выполнены правильно и что все зависимости корректно работают. После внесения изменений, попробуйте получить доступ к вашему сайту снова. Если у вас остаются проблемы, проверьте, действительно ли ваши настройки базы данных и сеть Docker настроены верно.

Оцените материал
Добавить комментарий

Капча загружается...