Joywork/README.md
2026-05-22 21:21:54 +03:00

8.9 KiB
Raw Blame History

Руководство по настройке проекта

Этот документ описывает процесс настройки и развертывания окружения проекта с использованием Docker.
В нем содержатся инструкции по установке, запуску контейнеров, настройке базы данных и устранению возможных ошибок.

Предварительные требования

Убедитесь, что на вашем локальном компьютере установлены следующие компоненты:

  • Docker (для контейнеризации)
  • Docker Compose (для управления многоконтейнерными приложениями Docker)
  • Git (для контроля версий и управления репозиториями)

Шаги

1. Клонирование репозитория

Если репозиторий проекта размещен на Git, клонируйте его с помощью следующей команды:

git clone https://gt.joywork.ru/JW/joywork.dev.git
cd joywork.dev

2. Переход в каталог Docker

Перейдите в каталог, где находятся файлы конфигурации Docker (docker-compose.yml и другие):

cd ./docker

3. Сборка и запуск контейнеров Docker

Выполните следующие команды для сборки и запуска контейнеров с помощью Docker Compose:

docker-compose build
docker-compose up -d
  • Первая команда собирает образы Docker в соответствии с конфигурацией.
  • Вторая команда запускает контейнеры в фоновом режиме (-d).

4. Установите права доступа для файла my.cnf

Чтобы установить права доступа chmod 644 для файла my.cnf, выполните следующую команду:

Linux

sudo chmod 644 ./mysql/my.cnf

Windows

Команды надо запускать в терминале Powershell

icacls "./mysql/my.cnf" /grant "Everyone:(R)"

Эта команда задаст права на файл следующим образом:

  • Владелец может читать и изменять файл.
  • Все остальные пользователи могут только читать файл.

5. Ожидание завершения импорта базы данных

Перед открытием проекта убедитесь, что импорт базы данных завершен.
Используйте следующую команду, чтобы отслеживать статус импорта:

Linux

watch -n 2 "docker exec -i DataBase mysql -u root -p'root' -e 'SHOW PROCESSLIST;'"

Windows

Команды надо запускать в терминале Powershell

while ($true) { 
    docker exec -i DataBase mysql -u root -p'root' -e "SHOW PROCESSLIST;"
    Start-Sleep -Seconds 2
}

Когда процесс импорта завершится, можно продолжить настройку.


6. Важное изменение в файле templates/new-header.php

Для корректной работы проекта необходимо закомментировать строки 587-591 в файле templates/new-header.php.

Найдите и измените код:

<?php
$chat = new ChatsCianAvito();
$can_chat_cian = $chat->can_chat($user, 2);
$can_chat_avito = $chat->can_chat($user, 1);
?>

Закомментируйте эти строки, добавив // перед каждой строкой:

<?php
// $chat = new ChatsCianAvito();
// $can_chat_cian = $chat->can_chat($user, 2);
// $can_chat_avito = $chat->can_chat($user, 1);
?>

Без этого изменения проект может не запуститься или работать некорректно.


7. Открытие проекта в браузере

После завершения настройки вы можете открыть проект в браузере по следующему адресу:

http://localhost
  • Логин: +79650964640
  • Пароль: 12345

Этот URL будет служить для доступа к проекту, работающему внутри контейнера Docker.


8. Полная очистка данных перед запуском (MySQL и Sphinx) (Если прежне уже был устоновлен JW)

Если требуется сбросить все данные MySQL и Sphinx перед запуском контейнеров, выполните следующие шаги:

8.1. Остановите все контейнеры Docker

docker-compose down

8.2. Полностью очистите данные MySQL

Удалите данные MySQL, чтобы сбросить базу:

Linux

sudo rm -rf ./mysql/data
mkdir -p ./mysql/data
sudo chown -R 999:999 ./mysql/data

Windows

Команды надо запускать в терминале Powershell

Remove-Item -Recurse -Force .\mysql\data
New-Item -Path .\mysql\data -ItemType Directory
icacls .\mysql\data /grant "Users:(OI)(CI)F"

8.3. Полностью очистите данные Sphinx

Удалите старые индексы и логи:

Linux

sudo rm -rf sphinx/index/
sudo rm -rf sphinx/binlog/
sudo mkdir -p sphinx/index/
sudo mkdir -p sphinx/binlog/

sudo rm -rf sphinx2/index/
sudo rm -rf sphinx2/binlog/
sudo mkdir -p sphinx2/index/
sudo mkdir -p sphinx2/binlog/

Windows

Команды надо запускать в терминале Powershell

Remove-Item -Recurse -Force .\sphinx\index\
Remove-Item -Recurse -Force .\sphinx\binlog\
New-Item -Path .\sphinx\index -ItemType Directory
New-Item -Path .\sphinx\binlog -ItemType Directory

Remove-Item -Recurse -Force .\sphinx2\index\
Remove-Item -Recurse -Force .\sphinx2\binlog\
New-Item -Path .\sphinx2\index -ItemType Directory
New-Item -Path .\sphinx2\binlog -ItemType Directory

8.4. Установите правильные права доступа

Чтобы контейнеры могли записывать в папки, установите соответствующие права:

Linux

sudo chown -R 999:999 ./sphinx/index
sudo chown -R 999:999 ./sphinx/binlog
sudo chown -R 999:999 ./sphinx2/index
sudo chown -R 999:999 ./sphinx2/binlog

sudo chmod -R 777 ./sphinx/index
sudo chmod -R 777 ./sphinx/binlog
sudo chmod -R 777 ./sphinx2/index
sudo chmod -R 777 ./sphinx2/binlog

Windows

Команды надо запускать в терминале Powershell

icacls .\sphinx\index /grant "Users:(OI)(CI)F" /T
icacls .\sphinx\binlog /grant "Users:(OI)(CI)F" /T
icacls .\sphinx2\index /grant "Users:(OI)(CI)F" /T
icacls .\sphinx2\binlog /grant "Users:(OI)(CI)F" /T

8.5. Перезапустите контейнеры

После очистки данных снова запустите контейнеры:

docker-compose up -d

8.6. Проверьте состояние контейнеров

Убедитесь, что все контейнеры успешно запущены:

docker ps

Если возникли ошибки, проверьте логи:

docker-compose logs

Заключение

После выполнения этих шагов:

  • Контейнеры Docker будут запущены и работать.
  • База данных MySQL будет восстановлена из файла /docker/dump/schema.sql.
  • Вы сможете проверить структуру и данные базы данных.
  • Проект будет доступен по адресу http://localhost.
  • MySQL будет доступен через phpMyAdmin по адресу http://localhost:8085.

Устранение неполадок

Если во время настройки возникли ошибки:

  • Проверьте логи с помощью команды:

    docker-compose logs
    
  • Перезапустите контейнеры при необходимости:

    docker-compose down && docker-compose up -d
    
  • Проверьте логи ошибок MySQL для диагностики проблем.

За дополнительной информацией обратитесь к документации проекта или свяжитесь с командой поддержки.