289 lines
8.9 KiB
Markdown
289 lines
8.9 KiB
Markdown
# Руководство по настройке проекта
|
||
|
||
Этот документ описывает процесс настройки и развертывания окружения проекта с использованием 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 для диагностики проблем.
|
||
|
||
За дополнительной информацией обратитесь к документации проекта или свяжитесь с командой поддержки.
|