1. Требования к серверу
| Компонент | Минимум | Рекомендуется |
|---|---|---|
| PHP | 8.2 | 8.2 или 8.3, production mode |
| Расширения | JSON, mbstring, Sodium, OpenSSL, cURL, Fileinfo, ZIP | Также GD для WebP и Intl для IDN‑доменов |
| Память PHP | 128 МБ | 256 МБ для Excel и резервных копий |
| Диск | 300 МБ | От 1 ГБ с запасом под фото и 7 копий |
| Веб‑сервер | Apache 2.4 / Nginx | HTTPS, HTTP/2 или HTTP/3 |
| База данных | Не требуется | Данные хранятся в закрытых JSON |
2. Что подготовить до загрузки
- Домен и вариант с
www, если он будет использоваться. - Работающий SSL‑сертификат и автоматический переход с HTTP на HTTPS.
- Доступ по SFTP/SSH или файловый менеджер панели хостинга.
- Отдельную папку сайта и возможность изменить document root.
- Архив дистрибутива, полученный после подтверждения заявки.
- Бессрочный лицензионный ключ формата
NOVA1.….
Не устанавливайте рабочий магазин в подпапку другого сайта. Для теста удобнее использовать отдельный поддомен, например test.example.ru, и заранее включить его в заявку на ключ.
3. Загрузка файлов
Через ISPmanager, cPanel или другую панель
- Создайте домен и включите SSL.
- Откройте файловый менеджер и перейдите в document root домена.
- Загрузите ZIP‑архив Nova CMS.
- Распакуйте его так, чтобы
router.php,index.phpиconfig.phpлежали непосредственно в корне сайта, а не во второй вложенной папке. - Удалите загруженный ZIP из публичной папки после распаковки.
Через SSH
cd /var/www/example.ru/public_html
unzip novacms-release.zip
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod -R 775 data cache backups assets/uploadsПуть зависит от панели и хостинга. Не копируйте команду вслепую — сначала выполните pwd и убедитесь, что находитесь в папке конкретного домена.
4. Права и закрытые каталоги
PHP должен записывать в data, cache, backups и assets/uploads. Обычно подходят каталоги 775, файлы 664 или более строгие права при совпадающем владельце процесса PHP.
data, backups, lib, scripts, templates и deploy не должны открываться через браузер.5. ЧПУ на Apache и Nginx
Apache
Включите mod_rewrite, разрешите .htaccess через AllowOverride All и направьте домен в корень CMS. Готовый пример виртуального хоста находится в закрытом комплекте deploy/apache-vhost.conf.example.
Nginx
Используйте правило try_files $uri $uri/ /router.php?$query_string; и отдельные запреты на служебные каталоги. Полный пример находится в deploy/nginx-novamarket.conf.example.
location / {
try_files $uri $uri/ /router.php?$query_string;
}
location ~ ^/(data|lib|templates|backups|scripts|deploy|config\.php) {
deny all;
}6. Установка лицензии
- Отправьте заявку и укажите точные домены.
- После проверки получите ключ по согласованному каналу.
- Откройте
https://ваш-домен.ru/install. - Вставьте ключ полностью, без пробелов и переноса внутри значения.
- Создайте уникальный пароль администратора длиной не менее 12 символов.
- Нажмите «Активировать» и дождитесь проверки цифровой подписи и домена.
- Войдите с логином
adminи созданным паролем, затем заполните настройки.
7. Cron для копий и индекса
Настройте ежедневную резервную копию в 23:00 и периодическое обновление поискового индекса. Используйте PHP CLI той же версии, что работает на сайте.
0 23 * * * /usr/bin/php /var/www/example.ru/public_html/scripts/backup-cron.php
*/20 * * * * /usr/bin/php /var/www/example.ru/public_html/scripts/rebuild-search-index.phpПуть /usr/bin/php и корень сайта уточните у хостинга. Cron‑скрипты нельзя вызывать по открытому URL.
8. Проверка перед публикацией
/data/products.jsonи/backupsотвечают 403.- Все ЧПУ открываются без
.php, старые адреса дают 301. - HTTPS не вызывает смешанного содержимого.
- Пароль администратора заменён, вход ограничивает перебор.
- Тестовый товар добавляется в корзину, заказ появляется в админке.
- Письма/мессенджеры и обратный звонок используют реальные контакты.
- Оплата проверена в тестовом режиме, webhook доходит до сайта.
sitemap.xmlпересобран, robots.txt соответствует стадии запуска.- Резервная копия создаётся и скачивается.
- Cookie и политика персональных данных переписаны под владельца сайта.
9. Безопасное обновление
- Создайте ручной backup и скачайте его с сервера.
- Разверните обновление на тестовом домене с отдельной лицензией.
- Сравните конфигурацию и не перезаписывайте рабочие
dataиassets/uploads. - Проверьте вход, каталог, заказ, оплату, sitemap и cron.
- Только после проверки обновляйте рабочий сайт в период низкой нагрузки.