Деплой
Обновлено: 17.08.2026🛠 Пошаговая установка
📑 Содержание
- 📋 Требования к серверу
- 1. Клонирование репозитория
- 2. Настройка прав
- 3. Установка зависимостей
- 4. Импорт базы данных
- 5. Настройка конфигурации
- 6. Настройка веб-сервера
- 7. Настройка почты
- 8. Настройка крона (опционально)
- 🔐 Настройка безопасности
- ✅ Проверка установки
- 🔧 Обновление системы
- 📊 Мониторинг
- 🆘 Частые проблемы
📋 Требования к серверу
▼
title: "Деплой" category: "developers" order: 4
Деплой CRM "Леотехно"
Требования к серверу
| Компонент | Минимальная версия | Рекомендуемая версия |
|---|---|---|
| PHP | 7.4 | 8.1+ |
| MySQL/MariaDB | 5.7 | 10.6+ |
| Веб-сервер | Apache 2.4 / Nginx 1.18+ | Nginx 1.24+ |
| Расширения PHP | PDO, MySQLi, JSON, Session, OpenSSL | + bcmath, mbstring, zip |
Проверка PHP-расширений
php -m | grep -E "pdo|mysql|json|session|openssl"
1. Клонирование репозитория
▼
bash
cd /var/www/ git clone https://github.com/your-repo/crm-invoices.git cd crm-invoices/
2. Настройка прав
▼
bash
# Назначаем владельца sudo chown -R www-data:www-data /var/www/crm-invoices/ # Права на запись (для кеша и логов) sudo chmod -R 775 /var/www/crm-invoices/tmp/ sudo chmod -R 775 /var/www/crm-invoices/logs/
3. Установка зависимостей
▼
bash
composer install --no-dev
4. Импорт базы данных
▼
bash
# Создаём БД mysql -u root -p -e "CREATE DATABASE crm_invoices CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" # Импортируем структуру mysql -u root -p crm_invoices < /var/www/crm-invoices/dump.sql
5. Настройка конфигурации
▼
Скопируй и отредактируй файлы в config/:
bash
cd /var/www/crm-invoices/config/ cp app.example.php app.php cp database.example.php database.php cp mail.example.php mail.php
Пример database.php:
php
<?php
return [
'host' => 'localhost',
'dbname' => 'crm_invoices',
'user' => 'crm_user',
'password' => 'secure_password',
'charset' => 'utf8mb4'
];
6. Настройка веб-сервера
▼
Nginx
Создай конфиг /etc/nginx/sites-available/crm-invoices:
nginx
server {
listen 80;
server_name your-domain.by;
root /var/www/crm-invoices/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Активируй конфиг и перезапусти Nginx:
bash
sudo ln -s /etc/nginx/sites-available/crm-invoices /etc/nginx/sites-enabled/ sudo systemctl restart nginx
Apache (с mod_rewrite)
Создай .htaccess в папке public/:
apache
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
7. Настройка почты
▼
Отредактируй config/mail.php:
php
<?php
return [
'host' => 'smtp.yandex.ru',
'port' => 465,
'secure' => 'ssl',
'user' => '[email protected]',
'password' => 'your_password',
'from' => '[email protected]',
'from_name' => 'CRM "Леотехно"'
];
8. Настройка крона (опционально)
▼
Для отправки уведомлений и очистки корзин:
bash
crontab -e
Добавь:
text
# Очистка корзин каждую ночь 0 3 * * * php /var/www/crm-invoices/scripts/clean-carts.php # Отправка отложенных уведомлений каждые 5 минут */5 * * * * php /var/www/crm-invoices/scripts/send-notifications.php
🔐 Настройка безопасности
▼
. Сгенерируй ключ шифрования
bash
php -r "echo bin2hex(random_bytes(32));"
Добавь в config/app.php:
php
'encryption_key' => 'сгенерированный_ключ_64_символа',
2. Настройка прав на файлы
bash
# Запрет доступа к config/ echo "Deny from all" > config/.htaccess # Запрет доступа к src/ echo "Deny from all" > src/.htaccess
3. Включи HTTPS (Let's Encrypt)
bash
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your-domain.by
✅ Проверка установки
▼
-
Открой сайт:
https://your-domain.by/ -
Авторизуйся под
admin -
Проверь:
- Дашборд загружается
- Список клиентов отображается
- Создание заказа работает
- Отправка email работает
Тест отправки почты
bash
php /var/www/crm-invoices/scripts/test-mail.php
Тест БД
bash
php /var/www/crm-invoices/scripts/test-db.php
🔧 Обновление системы
▼
1. Получить изменения
bash
cd /var/www/crm-invoices/ git pull origin main
2. Обновить зависимости
bash
composer install --no-dev
3. Применить миграции (если есть)
bash
php scripts/migrate.php
4. Очистить кеш
bash
php scripts/clear-cache.php
5. Перезапустить сервисы
bash
sudo systemctl restart nginx php8.1-fpm
📊 Мониторинг
▼
Логи
| Лог | Путь | Описание |
|---|---|---|
| Системный | /var/log/nginx/error.log |
Ошибки Nginx |
| PHP | /var/log/php8.1-fpm.log |
Ошибки PHP |
| Приложения | /var/www/crm-invoices/logs/app.log |
Логи CRM |
Профилирование
bash
# Проверка нагрузки htop # Просмотр логов в реальном времени tail -f /var/www/crm-invoices/logs/app.log
🆘 Частые проблемы
▼
1. Ошибка 500 (Internal Server Error)
Решение:
bash
# Проверить права на файлы sudo chown -R www-data:www-data /var/www/crm-invoices/ # Проверить ошибки PHP tail -f /var/log/php8.1-fpm.log
2. Не подключается база данных
Решение:
bash
# Проверить настройки в config/database.php # Проверить, запущен ли MySQL sudo systemctl status mysql
3. Не отправляется почта
Решение:
bash
# Проверить настройки SMTP # Проверить логи tail -f /var/www/crm-invoices/logs/mail.log
4. Сессии не работают
Решение:
bash
# Проверить права на папку sessions sudo chmod 777 /var/lib/php/sessions/