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

289 lines
8.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Руководство по настройке проекта
Этот документ описывает процесс настройки и развертывания окружения проекта с использованием Docker.
В нем содержатся инструкции по установке, запуску контейнеров, настройке базы данных и устранению возможных ошибок.
## Предварительные требования
Убедитесь, что на вашем локальном компьютере установлены следующие компоненты:
- **Docker** (для контейнеризации)
- **Docker Compose** (для управления многоконтейнерными приложениями Docker)
- **Git** (для контроля версий и управления репозиториями)
## Шаги
### 1. Клонирование репозитория
Если репозиторий проекта размещен на Git, клонируйте его с помощью следующей команды:
```sh
git clone https://gt.joywork.ru/JW/joywork.dev.git
cd joywork.dev
```
---
### 2. Переход в каталог Docker
Перейдите в каталог, где находятся файлы конфигурации Docker (`docker-compose.yml` и другие):
```sh
cd ./docker
```
---
### 3. Сборка и запуск контейнеров Docker
Выполните следующие команды для сборки и запуска контейнеров с помощью Docker Compose:
```sh
docker-compose build
docker-compose up -d
```
- Первая команда собирает образы Docker в соответствии с конфигурацией.
- Вторая команда запускает контейнеры в фоновом режиме (`-d`).
---
### 4. Установите права доступа для файла `my.cnf`
Чтобы установить права доступа `chmod 644` для файла `my.cnf`, выполните следующую команду:
**Linux**
```sh
sudo chmod 644 ./mysql/my.cnf
```
**Windows**
Команды надо запускать в терминале Powershell
```powershell
icacls "./mysql/my.cnf" /grant "Everyone:(R)"
```
Эта команда задаст права на файл следующим образом:
- Владелец может читать и изменять файл.
- Все остальные пользователи могут только читать файл.
---
### 5. Ожидание завершения импорта базы данных
Перед открытием проекта убедитесь, что импорт базы данных завершен.
Используйте следующую команду, чтобы отслеживать статус импорта:
**Linux**
```sh
watch -n 2 "docker exec -i DataBase mysql -u root -p'root' -e 'SHOW PROCESSLIST;'"
```
**Windows**
Команды надо запускать в терминале Powershell
```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
<?php
$chat = new ChatsCianAvito();
$can_chat_cian = $chat->can_chat($user, 2);
$can_chat_avito = $chat->can_chat($user, 1);
?>
```
**Закомментируйте эти строки, добавив `//` перед каждой строкой:**
```php
<?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**
```sh
docker-compose down
```
### **8.2. Полностью очистите данные MySQL**
Удалите данные MySQL, чтобы сбросить базу:
**Linux**
```sh
sudo rm -rf ./mysql/data
mkdir -p ./mysql/data
sudo chown -R 999:999 ./mysql/data
```
**Windows**
Команды надо запускать в терминале Powershell
```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**
```sh
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
```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**
```sh
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
```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. Перезапустите контейнеры**
После очистки данных снова запустите контейнеры:
```sh
docker-compose up -d
```
### **8.6. Проверьте состояние контейнеров**
Убедитесь, что все контейнеры успешно запущены:
```sh
docker ps
```
Если возникли ошибки, проверьте логи:
```sh
docker-compose logs
```
---
## Заключение
После выполнения этих шагов:
- Контейнеры Docker будут запущены и работать.
- База данных MySQL будет восстановлена из файла `/docker/dump/schema.sql`.
- Вы сможете проверить структуру и данные базы данных.
- Проект будет доступен по адресу `http://localhost`.
- MySQL будет доступен через phpMyAdmin по адресу `http://localhost:8085`.
---
## Устранение неполадок
Если во время настройки возникли ошибки:
- Проверьте логи с помощью команды:
```sh
docker-compose logs
```
- Перезапустите контейнеры при необходимости:
```sh
docker-compose down && docker-compose up -d
```
- Проверьте логи ошибок MySQL для диагностики проблем.
За дополнительной информацией обратитесь к документации проекта или свяжитесь с командой поддержки.