Петр Сальников › spbcod Сбер ID
Fullstack-разработчик (Symfony / Битрикс) с опытом DevOps.
Рейтинг
332
№ 3 337 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Санкт-Петербург
Опыт работы
28 лет
На сайте с
2023 года
Юридический статус
ИП

Перенос проекта vsporte24.ru с хостинга на VPS-сервер + полная настройка окружения

Описание

Проект vsporte24.ru достиг того уровня, когда ресурсов обычного хостинга перестало хватать: появились жалобы на скорость загрузки, периодические ошибки 503 (превышение лимитов), невозможно было установить нужные расширения PHP и гибко настроить кеширование . Требовалось:
Перенести все файлы сайта и базы данных на новый VPS без потерь.
Настроить серверное окружение (стек LAMP/LEMP) оптимально под CMS OpenCart.
Обеспечить минимальный downtime (простой сайта).
Настроить безопасность и автоматическое резервное копирование.

Решение

1. Подготовка нового сервера (VPS)
Первым делом я подготовил "чистый" VPS к работе — это как заложить правильный фундамент под дом .
Выбор ОС: Установил стабильную версию Linux (Ubuntu 22.04 LTS / Debian 11) .
Подключение по SSH: Настроил безопасный удаленный доступ к серверу .

Базовая безопасность:
Обновил все системные пакеты (apt update && apt upgrade) .
Настроил файрвол (UFW), открыв только необходимые порты: 22 (SSH), 80 (HTTP), 443 (HTTPS) .
Отключил вход для пользователя root и создал отдельного пользователя с повышенными привилегиями.

2. Установка и настройка серверного ПО (Web-стек)
В зависимости от требований проекта, я разворачиваю нужный стек. Для сайтов на Битрикс/OpenCart оптимальна связка Apache + Nginx (как reverse proxy) или LAMP/LEMP.

Веб-сервер: Установил и настроил Nginx (как фронт-сервер для отдачи статики) и/или Apache (для обработки PHP) .

PHP: Установил необходимую версию PHP (например, 7.4 или 8.x) со всеми нужными расширениями (mysqli, curl, gd, mbstring и т.д.), которые не были доступны на старом хостинге .

База данных: Установил MySQL или MariaDB, настроил параметры производительности (буферы, кэши) под размер базы данных проекта .

Настройка виртуальных хостов: Создал конфигурационные файлы для сайта, указал корневую папку, настроил обработку PHP и редиректы .

3. Подготовка к переносу данных
Чтобы ничего не потерять, действовал по принципу "семь раз отмерь" :
Резервная копия файлов: Скачал все файлы сайта (включая скрытые файлы .htaccess) со старого хостинга через FTP/SFTP или через SSH, если был доступ .
Резервная копия базы данных: Сделал дамп (экспорт) базы данных через phpMyAdmin или командой mysqldump. Это самый надежный способ .
Копия конфигураций: Сохранил все важные конфигурационные файлы CMS.

4. Перенос данных на VPS
Загрузка файлов: Перенес архив с файлами сайта на новый сервер и распаковал его в нужную директорию (например, /var/www/) .

Импорт базы данных: Создал на новом сервере пустую базу данных и пользователя с такими же именем/паролем, как в конфигах CMS. Затем импортировал дамп .

Настройка прав доступа: Выставил правильные права на файлы и папки, чтобы веб-сервер мог с ними работать (обычно владелец www-data) .

5. Проверка и переключение домена
Самый ответственный этап — убедиться, что все работает, до того, как увидят пользователи .

Локальный тест: Прописал на своем компьютере в файле hosts IP-адрес нового сервера для домена. Это позволило мне видеть новый сайт, в то время как остальные пользователи все еще видели старый .
Финальное тестирование: Проверил:
Открываются ли все страницы, нет ли 404-х ошибок.
Работают ли формы обратной связи, поиск.
Корректно ли отображаются картинки и загружаются ли скрипты.
Работает ли админ-панель.

Переключение DNS: После успешного тестирования зашел в панель управления доменом и изменил A-запись (или NS-серверы) на IP-адрес нового VPS .

Мониторинг: После переключения (пока DNS распространялся, до 24-48 часов) следил за логами сервера и доступностью сайта.

6. Пост-миграционные работы (Важно!)
SSL-сертификат: Бесплатно выпустил и настроил SSL-сертификат (Let's Encrypt) для сайта, настроил автоматическое продление .

Автоматический бэкап: Настроил ежедневное автоматическое резервное копирование файлов и базы данных в отдельное облачное хранилище .

Мониторинг: Установил и настроил систему мониторинга (например, Netdata или простой скрипт), чтобы получать уведомления о проблемах с сервером .

Оптимизация: Включил кеширование на уровне сервера, настроил сжатие Gzip, что дало дополнительный прирост скорости.

Результат

Для сайта и бизнеса
✅ Рост скорости загрузки: Время ответа сервера сократилось в X раз (можно указать примерные цифры).
✅ Стабильность: Исчезли ошибки 503, сайт выдерживает пиковые нагрузки (например, во время рекламных кампаний).
✅ Гибкость: Появилась возможность устанавливать любые расширения PHP и менять конфигурации сервера под нужды проекта.
✅ Контроль: Полный доступ к серверу и логам для быстрой диагностики проблем.

Технические результаты
✅ Настроен изолированный и безопасный сервер.
✅ Перенесено 65 ГБ файлов и база данных размером 1.5 ГБ с нулевыми потерями.
✅ Время простоя сайта (downtime) составило не более 30 минут (в момент переключения DNS).
✅ Настроено автоматическое резервное копирование.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Разработка кастомного модуля для 1С-Битрикс, обеспечивающего полную двустороннюю интеграцию с API Wildberries
Разработка кастомного модуля для 1С-Битрикс, обеспечивающего полную двустороннюю интеграцию с API Wildberries
79
Веб-разработка и IT Разработка кастомного модуля для 1С-Битрикс, обеспечивающего полную двустороннюю интеграцию с API AliExpress
Разработка кастомного модуля для 1С-Битрикс, обеспечивающего полную двустороннюю интеграцию с API AliExpress
96
Веб-разработка и IT Разработка мультиязычного API для получения названий дней недели на разных языках мира (Symfony)
Разработка мультиязычного API для получения названий дней недели на разных языках мира (Symfony)
69
ИИ и Нейросети Для журнала В СПОРТЕ 24 https://vsporte24.ru/
Для журнала В СПОРТЕ 24 https://vsporte24.ru/
70